gpt4 book ai didi

XPath - position() 函数的缩写

转载 作者:行者123 更新时间:2023-12-03 15:30:42 25 4
gpt4 key购买 nike

谁能解释一下有什么区别

/root/a[position()=1 or position()=2


/root/a[1 or 2]

?
我假设第二个是第一个的缩写形式,但 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 = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
Element element = (Element) node;
System.out.print(element.getNodeName() + " " + element.getAttributeNode("name"));
System.out.println();
}
}
}

最佳答案

我不认为 [1 or 2]正在评估您认为它正在评估的方式。 or适用于两个 bool 值。我怀疑两者12评价为真。因此,这个表达式的计算结果为真,基本上什么都不做,并将返回所有元素。

一般来说,position()可以用在 [position() <= 5] 之类的表达式中而索引地址只能选择一个元素,如 [5] .

关于XPath - position() 函数的缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7525780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com