Problema ao ler XML

24/08/2017

0

Boa tarde

Estou com problemas para ler um arquivo XML na seguinte estrutura:

<?xml version="1.0" encoding="iso-8859-1"?>
<mysql xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<table name="empresa">
<row>
<field name="codigo">2</field>
<field name="Razao">1001 TRANSPORTADORA E DISTR. LTDA</field>
<field name="cnpj"></field>
<field name="descricao">pppp</field>
</row>
<row>
<field name="codigo">3</field>
<field name="Razao">160 BAR E RESTAURANTE LTDA</field>
<field name="cnpj"></field>
<field name="descricao">uuu</field>
</row>
<row>
<field name="codigo">5496</field>
<field name="Razao">OTALIA ENGENHARIA E CONSTRUÇOES LTDA</field>
<field name="cnpj"></field>
<field name="descricao">yyy</field>
</row>
<row>
<field name="codigo">5497</field>
<field name="Razao">GOLDFARB 21 EMPREENDIMENTO IMOBILIARIO LTDA</field>
<field name="cnpj">11.111.111/0001-54</field>
<field name="descricao">xxx</field>
</row>
</table>
</mysql>

O problema é que não consigo filtrar por tags/atributos, e acabo exibindo todos os resultados. Tenho que exibir os dados da tag field referente à RAZAO, para isso estou utilizando C# (windows form).

Por favor, alguma ideia de como posso fazer isso?

Obrigado
Diego Silva

Diego Silva

Responder

Post mais votado

24/08/2017

Diego, você precisa utilizar o as classe XmlDocument para manipular XML.

Feito isso, você localiza os nodes com o metodo "GetElementsByTagName"

Att.

Israel Goncalves

Israel Goncalves
Responder

Mais Posts

24/08/2017

Diego Silva

Alguma idéia?
Responder

24/08/2017

Rafael Almeida

Boa noite,
Segue sugestão.


var xml = new System.Xml.XmlDocument();
            xml.Load(@"Seu XML"); 
            var Tag = xml.GetElementsByTagName("field")
                         .Cast<System.Xml.XmlNode>()
                         .Where(t => t.Attributes[0].Value == "Razao");

            foreach (System.Xml.XmlNode razao in Tag)
            {
                Console.WriteLine(razao.InnerText);
            }
Responder

25/08/2017

Diego Silva

Bom dia Israelgoncalves e Rafael Almeida!

Problema resolvido, o código que gerei é similar ao postado pelo Rafael Almeida.

Obrigado pela ajuda.

Diego, você precisa utilizar o as classe XmlDocument para manipular XML.

Feito isso, você localiza os nodes com o metodo "GetElementsByTagName"

Att.


Boa noite,
Segue sugestão.


#código
var xml = new System.Xml.XmlDocument();
xml.Load(@"Seu XML");
var Tag = xml.GetElementsByTagName("field")
.Cast<System.Xml.XmlNode>()
.Where(t => t.Attributes[0].Value == "Razao");

foreach (System.Xml.XmlNode razao in Tag)
{
Console.WriteLine(razao.InnerText);
}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar