Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 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.