2012-02-07 1 views
4

Добрый день! Я работаю с библиотекой Delphi 2009 и MSXML2_TLB (IXMLDOM). Мне нужно, чтобы выбрать последний узел Meeting:IXMLDOM не распознает функцию XPath last()?

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 

Спасибо заранее! Войтех

ответ

5

Это потому, что вы используете версию MSXML, где функция last не определена, насколько я знаю, эта функция была введена в V 4.0 MSXML

попробовать

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

Последняя() находится в W3C XPath, а не на диалекте XPath 1998 года, который Microsoft представила в MSXML, и который, насколько мне известно, по умолчанию является стандартным, хотя они и поддерживали реальный XPath в течение многих лет. –

Смежные вопросы