xmlDoc:=TXMLDocument.Create(self);
xmlDoc.LoadFromFile('d:\a.xml');
xmlDoc.Active:=true;
TopNode:=xmlDoc.DocumentElement;//取根节点
UserIDNode:=TopNode.ChildNodes.First;//
while UserIDNode<>nil do
begin
showmessage(useridnode.text);
UserIDNode:=UserIDNode.NextSibling;
end;错误提示:Element does not contain a single text node.XML文件:
<>
<>...头省了
<root>
<id>
<CA>
<A>
111
</A>
<A>
222
</A>
</CA>
</id>
</root>
xmlDoc.LoadFromFile('d:\a.xml');
xmlDoc.Active:=true;
TopNode:=xmlDoc.DocumentElement;//取根节点
UserIDNode:=TopNode.ChildNodes.First;//
while UserIDNode<>nil do
begin
showmessage(useridnode.text);
UserIDNode:=UserIDNode.NextSibling;
end;错误提示:Element does not contain a single text node.XML文件:
<>
<>...头省了
<root>
<id>
<CA>
<A>
111
</A>
<A>
222
</A>
</CA>
</id>
</root>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
改成 showmessage(useridnode.NodeName);
看看是不是 CA
这样弹出来是空的,就是说没有值的,
用useridnode.text取节点值时如果此节点有下级节点就会报错,需要用UserIDNode.IsTextElement先判断一下。
我的经验时是把useridnode.text的内容做为useridnode的父节点的属性来存储,比较方便