有这么一个XML文件 a.xml,内容如下:
<?xml version="1.0" encoding="utf-8" ?> 
<Strategy>
<ReaderLevel>
<RoadA>
<CloseReader>
<YM>
  <Reader>
    <Name>Reader1</Name> 
    <Control>12</Control> 
  </Reader>
  <Reader>
    <Name>Reader2</Name> 
    <Control>12</Control> 
  </Reader>
  <Reader>
    <Name>Reader3</Name> 
    <Control>12</Control> 
   </Reader>  
  </YM>
</CloseReader>
</RoadA>
</ReaderLevel>
</Strategy>问题如下:
   选择处YM下所有的子节点,组合成如下字符串
Reader1=12 
Reader2=12
Reader3=12
请问该如何操作,谢谢!
注明:只能使用Delphi自带的TXmlDocument!

解决方案 »

  1.   

    uses
      XMLDoc, XMLIntf;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      VxmlDoc: IXMLDocument;
      VxmlNode: IXMLNode;
    begin
      Memo1.Lines.Clear;
      VxmlDoc := TXMLDocument.Create('temp.xml');
      try
        VxmlDoc.Active := True;
        VxmlNode := VxmlDoc.DocumentElement.ChildNodes['ReaderLevel'].ChildNodes['RoadA'].ChildNodes['CloseReader'].ChildNodes['YM'].ChildNodes.First;
        while vxmlnode <> nil do
        begin
          Memo1.Lines.Add(Format('%s=%s', [VxmlNode.ChildNodes['Name'].NodeValue, VxmlNode.ChildNodes['Control'].NodeValue]));
          VxmlNode := VxmlNode.NextSibling;
        end;
      finally
        VxmlDoc := nil;
      end;
    end;