java - Dom4j selectNodes 在 XPATH 中带有过滤器

标签 java xpath dom4j

<Results>   
  <Details>  
    <Number> 01 </Number>
    <Seq> 01 </Seq>
  <Details>  
 <Details>  
    <Number> 02 </Number>
    <Seq> 01 </Seq>
  <Details>  
 <Details>  
    <Number> 01 </Number>
    <Seq> 03 </Seq>
  <Details>  
</Results>  

我愿意:

 .selectNodes("//Results/Details/Number = '1'");  

选择所有 Number 节点 = 1,但它返回“true”!而不是节点列表。
如何获取所有节点 Number = 1 ?

最佳答案

您的表达式“//Results/Details/Number = '1'”选择所有//Results/Details/Number,然后返回如果这些节点之一 -转换为字符串时 - 等于'1'
(并且给定您的 XML 文档,这应该返回 false 而不是 true)。

要选择文本内容等于 1 的所有 Number 节点,请使用表达式:

//Results/Details/Number[. = 1]

关于java - Dom4j selectNodes 在 XPATH 中带有过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872211/

相关文章:

java - 使用 Lucene 搜索有多少结果?

java - 使用UnboundID的@LDAPGetter和@LDAPSetter

python - 选择器response.xpath和response.css之间的输出差异是什么?

java - 从 XML 文件中删除节点(DOM4J、JAVA)

Java XML 从上到下读取 XML 文件

java - 如何在按回或打开 Activity 时隐藏滑动菜单

java - java中线程的等待列表

java - Selenium WebDriver -- 获取 <span> 文本

r - R : return NA if node is missing 中的 XPath

java - Java中简单的dom4j解析 - 无法访问子节点