Кои браузъри поддържат 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, реализация на 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.

Актуализация от август 2020 г.: Настоящият наследник на Saxon-CE е Saxon-JS 2, който поддържа XPath 3.1.

person LarsH    schedule 28.08.2014