首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

XmlDocument有关问题

2012-03-02 
XmlDocument问题有这么一个XML文件a.xml,内容如下:?xmlversion 1.0 encoding utf-8 ?StrategyR

XmlDocument问题
有这么一个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!



[解决办法]
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;

热点排行