相关疑难解决方法(0)

哪些浏览器支持Xpath 2.0?

我最近一直在使用XPath,并一直在寻找有关哪些浏览器支持XPath 2.0而没有太多运气的信息.我能找到的最好的是各种渲染引擎的查询技术比较表.

这清楚地告诉我Firefox和IE(两者的所有版本)都不支持XPath 2.0,但是Chrome,Safari等的其他渲染引擎呢?有没有人有这方面的信息或知道哪里可以找到它?

xml xpath xml-parsing xpath-2.0

25
推荐指数
1
解决办法
8949
查看次数

为什么现代浏览器引擎不支持 XPath 2.0?

我正在查看https://en.wikipedia.org/wiki/XPath_2.0,我惊讶地发现现代浏览器引擎不支持 XPath 2.0。我已经成功地使用了 XPath 2.0 函数,例如Chrome 中的substring-after 和 ,matches没有太多问题,但根据官方文档,这不应该被支持,因为它不是 XPath 1.0 的一部分。

兼容浏览器引擎列表是否已过时,或者我遗漏了什么?有人知道为什么 2007 年发布的这么旧的规范仍然不受支持吗?

xml browser xpath webkit google-chrome

7
推荐指数
1
解决办法
1112
查看次数

在XML :: LibXML中实现了什么版本的XPath?

有谁知道在XML :: LibMXL中实现了哪个版本的XPath规范?

或者更重要的是,在哪里可以找到我可以在LibXML中使用的XPath函数的描述?

例如,我尝试过类似的东西

$dcDOM->findvalue('//dc:identifier[contains(@xsi:type,"URI")]');
Run Code Online (Sandbox Code Playgroud)

这看起来很好,但是

$dcDOM->findvalue('//dc:identifier[matches(@xsi:type,"URI")]');
Run Code Online (Sandbox Code Playgroud)

才不是.

从那一点开始,我们必须假设它最多支持XPath 1.0或1.0/2.0的某个子集.

是否有一个整洁的页面列出和描述了所有内容?

xml perl xpath libxml2

5
推荐指数
1
解决办法
495
查看次数

通过XPath中的concat()换行(\ n)?

因此,我的系统中有一个员工的XML文档:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<couriersystem title="System"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="schema.xsd">
    <!-- snip -->
    <employees>
        <employee eid="1">
            <nin>AZ123518D</nin>
            <firstname>Peter</firstname>
            <lastname>Smith</lastname>
            <gender>Male</gender>
            <dob>1994-02-11</dob>
            <email>ps11@gmail.com</email>
            <address>
                119, London Street, Nidrie, F57 8NE
            </address>
            <tel>07005748900</tel>
            <salary>30526</salary>
            <empbranch bid="1" />
            <supervisor sid="1" />
        </employee>
        <employee eid="2">
            <nin>CN174869F</nin>
            <firstname>Jennifer</firstname>
            <lastname>Black</lastname>
            <gender>Male</gender>
            <dob>1984-12-24</dob>
            <email>jb21@gmail.com</email>
            <address>
                161, South Road, Nidrie, W79 8WG
            </address>
            <tel>07555111222</tel>
            <salary>40576</salary>
            <empbranch bid="2" />
            <supervisor sid="1" />
        </employee>
        <employee eid="3">
            <nin>ET127654M</nin>
            <firstname>Aaron</firstname>
            <lastname>Jones</lastname>
            <gender>Male</gender>
            <dob>1968-03-15</dob>
            <email>aj31@gmail.com</email>
            <address>
                66, High Road, Yoker, Q47 4SR
            </address>
            <tel>07856471267</tel> …
Run Code Online (Sandbox Code Playgroud)

xml xpath newline

3
推荐指数
1
解决办法
6330
查看次数

浏览器中的 XPath 3

当我们看到一致性图表时,例如https://caniuse.com/#search=xpathhttps://developer.microsoft.com/en-us/microsoft-edge/platform/status/domlevel3xpath/?q=xpath,它通常是关于DOM Level 3 XPath 的,重点是使用 XPath 1.0访问 DOM 对象,但不一定是 XPath 3.0 或更高版本。

问题 1 - W3C 等对浏览器是否有明确的版本要求以支持较新版本的 XPath?

此 XPath 1.0 功能有效:

document.evaluate(
  'normalize-space(" X  ")',
  document, null, XPathResult.ANY_TYPE, null ).stringValue

// => "X"
Run Code Online (Sandbox Code Playgroud)

但是这个 XPath 3.0 内联函数功能 ( ref ) 会抛出:

document.evaluate(
  'let $incr := function($n as xs:integer) as xs:integer { $n +1 } return $incr(2)',
  document, null, XPathResult.ANY_TYPE, null ).stringValue
Run Code Online (Sandbox Code Playgroud)

边缘:

XPATH15001:不支持 XPath 查询“let $incr := function($n as xs:integer) as xs:integer …

javascript xml browser xpath dom

3
推荐指数
1
解决办法
744
查看次数