Ler valor de dentro de uma tag pelo Delphi

Delphi

12/03/2013

Boa tarde pessoal,

estou com uma dúvida referente a leitura de uma tag de XML.
Tenho o seguinte XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<TABLE>
<TELA ID="10">
<MENSAGEM>Sucesso.</MENSAGEM>
</TELA>
<TELA ID="20">
<MENSAGEM>Erro.</MENSAGEM>
</TELA>
</TABLE>

Consigo ler a tag "MENSAGEM" sem problema, mas infelizmente não consigo acessar o valor do ID que esta na tag TELA.
Estou tentando assim:

XMLDocumentLog.DocumentElement.ChildNodes.FindNode('TELA').NodeValue;

Mas tenho retorno de erro pois não tenho um único nó de texto elemento "TELA".

Como faço para acessar este valor 10 e 20?
Estou utilizando o TXMLDocument.
Paulo Fossá

Paulo Fossá

Curtidas 0

Respostas

Paulo Fossá

Paulo Fossá

12/03/2013

Pessoal, descobri que esta maneira de xml é chamada de atributo. Então não é no modo convencional que acessa o valor.
Utilizei o seguinte código;

// Joguei para um Nodo
ATela := XMLDocumentLog.DocumentElement.ChildNodes.FindNode('Tela');

// Peguei valor
ATela.AttributeNodes['ID'].Text

// Dei um loop no for utilizado para ler
AChamadas := AChamadas.NextSibling;

Obrigado.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

12/03/2013

Exato, amigo.
Quando você tem o valor como uma nova tag interna, este valor é um ELEMENTO. Se o valor estiver direto na tag em questão, entre os sinais < e >, é um ATRIBUTO.
Exemplo de elemento filho:
<PAI>
<FILHO> Valor do elemento filho </FILHO>
</PAI>

Exemplo de atrbuto:
<PAI Nome="Nome do elemento pai">

</PAI>

Como você já conseguiu resolver, estou encerrando o tópico.
Abraço.
GOSTEI 0
Paulo Fossá

Paulo Fossá

12/03/2013

Obrigado!
GOSTEI 0
POSTAR