MS VBA и XPath 2.0

Существуют ли какие-либо библиотеки VBA, которые позволят мне использовать XPath 2.0 в VBA? MSXML6 не работает с XPath 2.0.

По сути, я хочу анализировать XML-документы с помощью XPath 2.0, поскольку он позволяет мне использовать функции в выражении XPath для фильтрации XML-документа. В качестве примера было бы полезно использовать функцию current-date (), поскольку я мог бы получить данные, превышающие определенную дату. Если бы я использовал XPath 1.0, мне нужно было бы произвольно перебирать даты, возвращаемые XPath, и сравнивать, какие даты были больше определенной даты.

Есть ли у вас идеи относительно того, как я могу использовать XPath 2.0 в Excel 2003 VBA или какие-либо альтернативы моей проблеме?

Заранее благодарю за любую помощь.

Дональд


person Donald    schedule 09.09.2009    source источник


Ответы (4)


Простите мое незнание за незнание XPath2.

Не могли бы вы вместо этого использовать критерии XPath, используя значение даты из VB?
Я имею в виду, «/ Date> 9/9/2009» - где 9/9/2009 - текущая дата, которая исходит из VB.

Дайте мне знать, если я не понял вопроса.

person shahkalpeshp    schedule 09.09.2009

Нет. Насколько мне известно, Microsoft не реализует XPath 2.0.

person Dimitre Novatchev    schedule 09.09.2009

Хотя, к сожалению, ответ Димитра по-прежнему совершенно верен (см. Также this thread), если вы можете использовать библиотеки .NET с вашим приложением VBA, вы можете рассмотреть возможность использования Saxon для .NET, который является прямым портом IKVM Java Saxon на .NET.

person Abel    schedule 18.01.2010

Altova предлагает для загрузки свои XSLT, XPath 2.0 и XQuery 1.0 процессоры для Windows, см. http://www.altova.com/altovaxml.html. Это приложение COM, которое может быть написано / автоматизировано, поэтому вы сможете использовать его с VBA, пример в документации. Я не думаю, что существует API для использования чистого XPath 2.0, но есть API для использования XQuery 1.0, а XPath 2.0 является подмножеством XQuery 1.0.

person Martin Honnen    schedule 31.01.2010