Ler XML específico com C#
Tenho o seguinte XML:
- Dentro da tag tabelas ficara todas as minhas tabelas que irei mapear manualmente.
- Dentro de tabelas irá existir uma tag com o nome da tabela e sua descrição. EX: <tb_parceiro desc=Parceiro de negócios>
- Dentro de da tb_parceiro irá existir várias tags com o nome <coluna> com uma descrição e seu valor.
Como percorro esse xml pegando todas as colunas de um determinada tabela, sua descrição e seu valor? E pegar a descrição de uma determinada tabela també?
Tem que ser usando C#.
<?xml version=1.0 encoding=iso-8859-1?> <tabelas> <tb_parceiro desc=Parceiro de negócios> <coluna desc=Código do PN>CardCode</coluna> <coluna desc=Nome do PN>CardName</coluna> </tb_parceiro> <tb_teste> <coluna desc=teste>Teste</coluna> </tb_teste> </tabelas>
- Dentro da tag tabelas ficara todas as minhas tabelas que irei mapear manualmente.
- Dentro de tabelas irá existir uma tag com o nome da tabela e sua descrição. EX: <tb_parceiro desc=Parceiro de negócios>
- Dentro de da tb_parceiro irá existir várias tags com o nome <coluna> com uma descrição e seu valor.
Como percorro esse xml pegando todas as colunas de um determinada tabela, sua descrição e seu valor? E pegar a descrição de uma determinada tabela també?
Tem que ser usando C#.
Harley Magalhães
Curtidas 0
Respostas
Joel Rodrigues
07/02/2012
Boa noite.
Tente o seguinte:
-----------------
XDocument docXML = XDocument.Load(caminho);
foreach(XElement tab in docXML.Element(tabelas).Elements)
{
string descTabela = tab.Attribute(desc).Value;//acessando atributo pelo nome
foreach(XElement col in tab.Elements)
{
string descColuna = col.Attribute(desc).Value;
string contColuna = col.Value;
}
}
-----------------
Não repare qqer pequena falha no código, escrevi no notepad mesmo.
Qualquer dúvida, é só falar.
Tente o seguinte:
-----------------
XDocument docXML = XDocument.Load(caminho);
foreach(XElement tab in docXML.Element(tabelas).Elements)
{
string descTabela = tab.Attribute(desc).Value;//acessando atributo pelo nome
foreach(XElement col in tab.Elements)
{
string descColuna = col.Attribute(desc).Value;
string contColuna = col.Value;
}
}
-----------------
Não repare qqer pequena falha no código, escrevi no notepad mesmo.
Qualquer dúvida, é só falar.
GOSTEI 0
Joel Rodrigues
07/02/2012
Bom, não sei se é de seu interesse, mas você pode pesquisar por Serialization. O .NET fornece uma série de facilidades para se trabalhar com isso, convertendo objetos de/para XML.
GOSTEI 0
Flavia Santos
07/02/2012
Bem lembrado Joel, inclusive na edição 73 da revista .net magazine tem um artigo bem interessante sobre o tema.
GOSTEI 0