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>

解决方案 »

  1.   

    showmessage(useridnode.text);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     改成 showmessage(useridnode.NodeName);
    看看是不是 CA
      

  2.   

    NODENAME显示正确的,就是显示TEXT的时候,有那个错误.
      

  3.   

    showMessage(useridnode.Attributes['youname'])
      

  4.   

    showMessage(useridnode.Attributes['youname'])
    这样弹出来是空的,就是说没有值的,
      

  5.   

    if UserIDNode.IsTextElement then showmessage(useridnode.text);
      

  6.   

    同意scycgjr(夏日荷)的方法;
    用useridnode.text取节点值时如果此节点有下级节点就会报错,需要用UserIDNode.IsTextElement先判断一下。
    我的经验时是把useridnode.text的内容做为useridnode的父节点的属性来存储,比较方便