IXMLDOM无法识别XPath last()函数?

时间:2012-02-07 16:46:33

标签: delphi xpath delphi-2009 xmldom

美好的一天!我正在使用Delphi 2009和MSXML2_TLB库(IXMLDOM)。我需要选择最后一个会议节点:

Doc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;
Doc.loadXML(XmlStr);
tmpNode:= Doc.selectSingleNode('//Meeting[last()]');

但是在上面代码的最后一行我得到了异常:

Project test.exe raised exception class EOleException with message: 'Unknown method
//Meeting[-->last()<--]'

有没有办法如何使用xpath选择最后一个节点,还是我真的必须编写代码来获取节点列表然后选择最后一个元素?

然而版本信息:

Type Lib: C:\WINDOWS\system32\msxml6.dll (1)
LIBID: {F5078F18-C551-11D3-89B9-0000F81FE221}
HelpString: Microsoft XML, v6.0

提前谢谢! Vojtech

1 个答案:

答案 0 :(得分:5)

这是因为您使用的是msxml版本,其中未定义last函数,据我所知,此函数是在MSXML的v 4.0中引入的

Doc := CreateOleObject('Msxml2.DOMDocument.6.0') as IXMLDomDocument;