【问题标题】:Java XPathExpression for Child Element Using Parent Element As XPath Parameter使用父元素作为 XPath 参数的子元素的 Java XPathExpression
【发布时间】:2014-01-10 02:03:37
【问题描述】:

对于以下xml:

<books>   
    <book>
       <author>Peter</author>
       <title>Tales from Somewhere</title>
       <data>
          <version>1</version>
       </data>
    </book>
    <book>
       <author>Paul</author>
       <title>Tales from Nowhere</title>
       <data>
          <version>2</version>
       </data>
    </book>
 </books>

如何使用这种类型的符号来构建 Java XPathExpression,以获取上述书籍作者“Paul”的 &lt;version&gt; 值:

//*[local-name()='books']/*

?

我使用以下问题作为参考: Get first child node in XSLT using local-name()

谢谢!

【问题讨论】:

标签: java xml xslt xpath xslt-1.0


【解决方案1】:

此 XPath 将获取一本书的版本,其中有一个 author 元素,值为“Paul”:

//book[author="Paul"]/data/version

当针对这个 XML 运行时:

<books> 
  <book> 
    <author>Peter</author>  
    <title>Tales from Somewhere</title>  
    <data> 
      <version>1</version> 
    </data> 
  </book>  
  <book> 
    <author>Paul</author>  
    <title>Tales from Nowhere</title>  
    <data> 
      <version>2</version> 
    </data> 
  </book> 
  <book> 
    <author>Peter</author>  
    <author>Paul</author>  
    <title>How to write a book with a friend</title>  
    <data> 
      <version>7</version> 
    </data> 
  </book> 
</books>

你得到这个结果:

<version>1</version>
<version>7</version>

【讨论】:

  • 谢谢。那就是 XPath,它很棒。现在我正在寻找用于构建 Java XPathExpression 的表达式,基于这个 XPath(很抱歉之前没有指定)。
  • 我不做java。最好为此提出一个新问题。
  • 没想到您的答案能够编译成 XPathExpression,但确实如此。干杯
猜你喜欢
  • 2021-02-23
  • 2018-07-09
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 2019-10-01
相关资源
最近更新 更多