Pergunta

O que é a melhor maneira de ler XML a partir de qualquer um XmlDocument ou uma String em um DataGrid?

Será que o xml tem que estar em um formato particular?

Eu tenho que usar um DataSet como intermediário?

Eu estou trabalhando em um cliente que consome XML enviados através de um servidor que está sendo desenvolvido por um dos meus colegas, eu posso levá-lo a mudar o formato do XML para coincidir com o que um DataGrid requer.

Foi útil?

Solução 4

Nós temos uma resposta parcial para obter os dados em um conjunto de dados, mas ele lê-lo como um conjunto de tabelas com ligações relacionais.

        DataSet ds = new DataSet();
        XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
        ds.ReadXml(xmlreader);

Outras dicas

Isso depende de qual versão do .NET que está sendo executado. Se você pode usar Linq2Xml então é fácil. Basta criar um XDocument e selecionar os nós filhos como uma lista de um tipo anônimo.

Se você não pode usar Linq2Xml então você tem algumas outras opções. Usando um DataSet é um, isso pode funcionar bem, mas isso depende do xml que está recebendo. Uma outra opção é criar uma classe que descreve a entidade que você vai ler a partir do xml e passo através dos nós XML manualmente. Uma terceira opção seria a utilização de XML serialização e desserializar o xml em uma lista de objetos. Isso pode funcionar bem, desde que você tem classes que são configuração para ele.

A opção mais fácil vai ser para criar um XDocument ou para criar um DataSet como você sugere.

Obviamente o XML deve ser válido:)

Depois disso, definir um conjunto de dados, definir um datagrid. Use o método ReadXml no conjunto de dados para preencher o conjunto de dados com o seu XML, terminar com um vincular e você é bom para ir.

DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ; 
myDataGrid.DataBind(); 

Você pode simplesmente usar o objeto XmlDataSource como fonte de dados da grade. Isso permite que você defina o arquivo e o XPath, a fim de escolher o XML que é a Soure dos seus dados. Você pode então usar a função <% # XPath = "blah" %> para escrever os seus dados explicitamente, se você gosta.

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