Pergunta

Estou construindo um relatório local. Devido a algumas limitações da propriedade oculta, preciso gerar dinamicamente o relatório.

Eu encontrei alguma documentação aqui.

O controle do relatório precisa de um fluxo.

Eu realmente não gosto do método usado na documentação. E construir um XMLDocument não é muito legível IMO.

Há algo que me impede de fazer assim

classe programa {estático void main (string [] args) {generateReport (); }

    static void GenerateReport(){        
        StringBuilder reportXml = new StringBuilder();

        reportXml.Append("<Report>");
        reportXml.Append("<PageHeight>8.5in</PageHeight>");            
        reportXml.Append("</Report>");          

        XmlDocument xmlDocument = new XmlDocument();

        xmlDocument.LoadXml(reportXml.ToString());

        xmlDocument.Save(@"C:\test.xml");
        xmlDocument.Save(Console.Out);

        Console.ReadLine();
    }
}
Foi útil?

Solução

Simples: se você usar esse método, operações especiais no processador detectam que a classe errada WS usou para gerar essa string, momento em que a polícia da correção é chamada.

Sério, não há nada que o impeça de fazê -lo exatamente assim; De fato, sob as capas, você pode apostar que há algum código no gerador XML mais complicado que faz algo assim. Quando você se aproxima, o XML é apenas uma corda e, desde que seja bem formada, essa string será a mesma, não importa como você a construa.

A vantagem de outras classes é que elas são mais simples e mais flexíveis quando você deseja criar XML mais complicado.


Existem quase infinitamente muitas classes que podem gerar XML ou XHTML. Procure um que tenha uma "interface fluente". Em um C ++-como a linguagem, pode parecer:

  XMLOutStream foo("filename.xml);
  foo.group("Top","attr=val")
     .group("Next")
     .line("Another", "attr=val") ;

para gerar

 <Top>
   <Next attr="val">
      <Another attr="val" />
   </Next>
 </Top>

Eu estava procurando algo semelhante para HTML em essa questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top