读书人

XmlDocument有关问题

发布时间: 2012-03-02 14:40:29 作者: rapoo

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;

读书人网 >.NET

热点推荐