Wenn wir Conformance-Chart, wie https://caniuse.com/#search=xpath und https://developer.microsoft.com/en-us/microsoft-edge/platform/status/domlevel3xpath/?q=xpath, es ist in der Regel etwa DOM Level 3 XPath sehen, die mithilfe von XPath auf dem Zugriff auf DOM-Objekt fokussiert 1.0, aber nicht unbedingt XPath 3.0 oder höher.XPath 3 in Browser
Frage 1 - Gibt es eine explizite Version Voraussetzung für Browser von W3C usw. neueren Versionen von XPath zu unterstützen?
Diese XPath 1.0 Feature funktioniert:
document.evaluate(
'normalize-space(" X ")',
document, null, XPathResult.ANY_TYPE, null).stringValue
// => "X"
Aber diese XPath 3.0 Inline-Funktion Funktion (ref) wirft:
document.evaluate(
'let $incr := function($n as xs:integer) as xs:integer { $n +1 } return $incr(2)',
document, null, XPathResult.ANY_TYPE, null).stringValue
Rand:
XPATH15001: XPath query "let $incr := function($n as xs:integer) as xs:integer { $n +1 } return $incr(2)" not supported
Firefox:
SyntaxError: The expression is not a legal expression.
Frage 2 - Wenn XPath 3.0 in Browser erlaubt, Fehler in meinem Code angenommen; Wie wäre es dann mit v3.1 Features (wie arrow-functions), sind diese auch erlaubt?
Da der Standard nicht neue XPath-Unterstützung erforderlich ist, werden keine Anstrengungen unternommen werden. – Annie
XPath2.0 wurde 2014 durch XPath3.0 abgelöst. – Annie
Ein Standard kann die Einhaltung von Bestimmungen diktieren, erzwingt aber keine Übernahme. – kjhughes