我需要从xml文件中解析出一些值。问题是 - 我必须用Delphi =(。 文件非常简单
<?xml version="1.0"?>
<Items version="1.0">
<Item BackupFileName="d:\data.bak">
<Rating Rate="TOP"/>
</Item>
<Item BackupFileName="d:\data2.bak">
<Rating Rate="OTHER"/>
</Item>
....
</Items>
我只需要一个包含此文件路径的字符串数组{“d:\ data.bak”,“d:\ data2.bak”,...} 我用谷歌搜索了一下,找到了一个像我想的那样的解决方案
url := 'D:\Backups.xml';
xml := CreateOleObject('Microsoft.XMLDOM') as IXMLDOMDocument;
xml.async := False;
xml.load(url); // or use loadXML to load XML document using a supplied string
if xml.parseError.errorCode <> 0 then
raise Exception.Create('XML Load error:' + xml.parseError.reason);
nodes_row := xml.selectNodes('/Items');
for i := 0 to nodes_row.length - 1 do
begin
node := nodes_row.item[i];
result := node.selectSingleNode('Item').text;
end;
但结果似乎总是无效的。您能为此提供或推荐一个简单的解决方案吗?
答案 0 :(得分:0)
使用IXMLNode.Attributes
属性或IXMLNode.AttributeNodes
属性,因为您的节点不包含文本,实际上您正在查找属性文本。