小编Ant*_*ton的帖子

XPath-position()函数的缩写

谁能解释一下两者之间有什么区别

/root/a[position()=1 or position()=2
Run Code Online (Sandbox Code Playgroud)

/root/a[1 or 2]
Run Code Online (Sandbox Code Playgroud)

?我假设2nd是1st的缩写形式,但是Java XPath(Sun JDK 1.6.0)处理器则认为不是这样。以下是我的测试应用程序。

libxml2库和db2 XPath处理器也认为这些路径不同。因此,它看起来不像是JDK错误。

import java.io.*;
import javax.xml.xpath.*;
import org.w3c.dom.*;

import org.xml.sax.InputSource;

public class XPathTest {
    public static void main(String[] args) throws Exception {
        //String xpathStr = "/root/a[position()=1 or position()=2]";
        String xpathStr = "/root/a[1 or 2]";

        XPathFactory xpf = XPathFactory.newInstance();
        XPath xp = xpf.newXPath();
        Reader irdr = new StringReader(
                "<root><a name=\"first\"/><a name=\"second\"/><a name=\"third\"/></root>");
        InputSource isrc = new InputSource(irdr);
        XPathExpression expr = xp.compile(xpathStr);
        Object result = expr.evaluate(isrc, XPathConstants.NODESET);
        NodeList nodes = …
Run Code Online (Sandbox Code Playgroud)

xpath

5
推荐指数
2
解决办法
3904
查看次数

标签 统计

xpath ×1