Array
(
)

Ler XML específico com C#

Harley Magalhães
   - 07 fev 2012

Tenho o seguinte XML:
#Código<?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#.

Joel Rodrigues
   - 07 fev 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.

Joel Rodrigues
   - 07 fev 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.

Flavix
   - 08 fev 2012

Bem lembrado Joel, inclusive na edição 73 da revista .net magazine tem um artigo bem interessante sobre o tema.