Problema ao ler XML
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
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
Curtidas 0
Melhor post
Israel Goncalves
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.
Feito isso, você localiza os nodes com o metodo "GetElementsByTagName"
Att.
GOSTEI 1
Mais Respostas
Diego Silva
24/08/2017
Alguma idéia?
GOSTEI 0
Rafael Almeida
24/08/2017
Boa noite,
Segue sugestão.
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); }
GOSTEI 1
Diego Silva
24/08/2017
Bom dia Israelgoncalves e Rafael Almeida!
Problema resolvido, o código que gerei é similar ao postado pelo Rafael Almeida.
Obrigado pela ajuda.
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.
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);
}
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);
}
GOSTEI 0