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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar