Какие браузеры поддерживают Xpath 2.0?
Недавно я работал с XPath и искал информацию о том, какие браузеры поддерживают XPath 2.0 без большой удачи. Лучшее, что я мог найти, это таблица сравнения технологий запросов различных движков рендеринга.
Это ясно говорит мне, что Firefox и IE (все версии обоих) не поддерживают XPath 2.0, но как насчет других механизмов рендеринга для Chrome, Safari и т.д.? Кто-нибудь имеет информацию об этом или знает, где его можно найти?
Ответы
Ответ 1
Я ничего не знаю, а официальный список версий также не содержит.
Альтернатива - конечно, менее эффективная, чем встроенная реализация - будет XQIB, которая является реализацией XQuery в JavaScript. XPath 2.0 полностью включен как подмножество в XQuery 1.0, поэтому вы сможете использовать все возможности XPath 2.0 (и многое другое) во всех браузерах с поддержкой JavaScript.
A короткий образец, взятый с их сайта о том, как его использовать:
<script type="text/javascript" src="mxqueryjs/mxqueryjs.nocache.js"></script>
<script type="application/xquery">
b:alert(
let $x := <a><b>2</b><c>4</c></a>
return xs:string($x/b * $x/c)
)
</script>
Ответ 2
Существует также Saxon CE, реализация Javascript с открытым исходным кодом для XSLT 2.0. Поскольку XSLT 2.0 включает XPath 2.0, это обеспечивает реализацию XPath 2.0 в браузере. Однако он не встроен.
Я просто попробовал текущую версию Safari (7.0.6) и не принял функции XPath 2.0, которые я ей дал:
> document.evaluate("starts-with('foo', 'f')", document.documentElement, null,
XPathResult.BOOLEAN_TYPE, null);
< XPathResult
> document.evaluate("ends-with('foo', 'o')", document.documentElement, null,
XPathResult.BOOLEAN_TYPE, null);
< Error: INVALID_EXPRESSION_ERR: DOM XPath Exception 51
Итак, я бы сказал, что WebKit (в частности, JS-движок SquirrelFish/Nitro) в настоящее время не поддерживает XPath 2.0.
Ответ 3
Существует реализация XPath 2.0 с открытым исходным кодом в JavaScript, также завернутая как jQuery XPath plugin.