Какие браузеры поддерживают Xpath 2.0?

Недавно я работал с XPath и безуспешно искал информацию о том, какие браузеры поддерживают XPath 2.0. Лучшее, что мне удалось найти, — это сравнительная таблица технологий запросов различных механизмов рендеринга.

Это ясно говорит мне о том, что Firefox и IE (все версии обеих) не поддерживают XPath 2.0, но как насчет других механизмов рендеринга для Chrome, Safari и т. д.? Есть ли у кого-нибудь информация по этому поводу или кто-нибудь знает, где это можно найти?


person Default    schedule 20.05.2013    source источник


Ответы (4)


Я ничего не знаю, и официальный список реализаций тоже не включает ни одной.

Альтернативой — конечно, менее производительной, чем нативная реализация — может быть XQIB, который является реализацией XQuery в JavaScript. XPath 2.0 полностью включен как подмножество в XQuery 1.0, поэтому вы сможете использовать все возможности XPath 2.0 (и даже больше) во всех браузерах с поддержкой JavaScript.

краткий пример того, как его использовать, взятый с их веб-сайта:

<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>
person Jens Erat    schedule 20.05.2013

Большинство браузеров не поддерживают XPATH 2.0, см. Сравнение механизмов компоновки для получения дополнительной информации.

Однако вы можете получить поддержку XPATH 2.0 в Firefox, используя Saxon-CE. , см. дополнительные сведения на странице MDN XSLT_2.0.

person Andriy Ivaneyko    schedule 30.08.2018

Существует реализация XPath 2.0 с открытым исходным кодом в JavaScript, также заключенная в виде плагин jQuery XPath.

person Sergey Ilinsky    schedule 23.06.2015

Существует также Saxon CE, реализация XSLT 2.0 на Javascript с открытым исходным кодом. Поскольку 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.

Обновление от августа 2020 г. Текущим преемником Saxon-CE является Saxon-JS 2, который поддерживает XPath 3.1.

person LarsH    schedule 28.08.2014