Fórum Delphi x XMLNode.NodeType #526743

24/07/2015

0

Bom Dia

Fiz uma função que está lendo um arquivo XML em um TreeView.

Ela começa com

if XMLNode.NodeType <> ntElement then
Exit;

Mas a função já começa errado pois o XMLNode.NodeType = ntDocument

Ao salvar o XML eu uso

XML.SaveToFile('C:\Exemplo.xml');


Alguma dica?

Grato
Alessandro Yamasaki

Alessandro Yamasaki

Responder

Posts

26/07/2015

Tiago Rizzon

Bom dia!

manda o arquivo XML
e mais detalhes doq vc precisa processar neste arquivo.

Abraço!
Responder

Gostei + 0

26/08/2015

Alessandro Yamasaki

Solução

// Monta a estrutura em árvore dentro do TreeView
GenereteTree(XMLNode: IXMLNode;
TreeNode: TTreeNode; TreeView: TTreeView );
var
liCont: Integer;
ltNewTreeNode : TTreeNode;
lsNodeText: string;
lxAttrNode: IXMLNode;
begin
lsNodeText := XmlNode.NodeName;

if XmlNode.IsTextElement then
begin
lsNodeText := lsNodeText + ' = ' + XmlNode.NodeValue;
end;

if (xmlNode.AttributeNodes.Count > 0) or XmlNode.HasChildNodes then
begin
ltNewTreeNode := TreeView.Items.AddChild(TreeNode, lsNodeText);
end;

// Add attributos
for liCont := 0 to xmlNode.AttributeNodes.Count - 1 do
begin
lxAttrNode := xmlNode.AttributeNodes.Nodes[liCont];
TreeView.Items.AddChild(ltNewTreeNode,
'[' + lxAttrNode.NodeName + ' = "' + lxAttrNode.Text + '"]');
end;

// Add cada filho
if XmlNode.HasChildNodes then
begin
for liCont := 0 to xmlNode.ChildNodes.Count - 1 do
begin
GenereteTree(XMLNode.ChildNodes[liCont], ltNewTreeNode, TreeView);
end;
end;
end;
Responder

Gostei + 0

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

Aceitar