xml如下:
<?xml version="1.0" ?>
<root>
<>1234</>
<content>
<dog id="12">huahua</dog>
<cat id="1" name="a1"/>
<cat id="2" name="a2"/>
<cat id="3" name="a3"/>    
</content>
</root>问题:
我怎么获取
<dog id="12">huahua</dog>
<cat id="1" name="a1"/>
<cat id="2" name="a2"/>
<cat id="3" name="a3"/> 
这块内容,其中dog和cat有发生变化的。

解决方案 »

  1.   

    总是出现: element does not contain a single text node 错误
      

  2.   

    引入TXMLDocument处理,很方便的。
    举便如下:
    XD1:TXMLDocument;
    var
    RootNode:IXMLNode;
    begin
      XD1.Active:=False;
      XD1.XML.Text:='引入的XML文档串';
      XD1.Active:=true;
      RootNode:=self.XD1.DocumentElement;
      for i := 0 to RootNode.ChildNodes[0].ChildNodes.Count - 1 do
      begin
        RecName:=VarToStr(RootNode.ChildNodes[0].ChildNodes[i].AttributeNodes['Name'].NodeValue);
          end;
      end;
    end;
      

  3.   

    里面还有属性怎么处理。<content></content>中的内容我要提取出来转发到另外的进程,然后 接收返回后写回去。里面的格式我不关心也不参与处理
      

  4.   

    那你直接用字符截取等方式吧。copy,delete,pos等函数操作,以<content>,</content>为区分点。
      

  5.   

    得到属性可以这样,nodeList.Get(j).GetAttributeNS('id','') ;这个我是刚使用了xml用到的。。