java - JAVA中如何获取XPath查询结果的父节点

标签 java xml xpath

我在java.util.xml文件中使用javax.xml.parsers.DocumentBuilder。 给定这样的标记:

 <?xml version="1.0" encoding="utf-8"?>
    <calendar>
        <endfiscalyear month="12" dayofmonth="28" />
        <year yr="2014">
          <event month="12" dayofmonth="24">
            <p>Dividendenauszahlung</p>
            <en>dividend payment</en>
          </event>
        </year>
        <year yr="2015">
          <event month="2" dayofmonth="1">
            <p>Hauptversammlung</p>
            <en>general meeting</en>
          </event>
           <event month="5" dayofmonth="2">
            <p>Hauptversammlung</p>
            <en>general meeting</en>
          </event>
          <event month="8" dayofmonth="21">
            <p>Ergebnis 2.Quartal</p>
            <en>1st quarter results</en>
          </event>
        </year>
      </calendar>

现在我只想获取去年、月份和日期,其中最后一个是“全体 session ”,在此掩码中应该是year@yr=2015, <event month="4" dayofmonth="21"> 。我可以分别获取年、月和日,但当我尝试时,它们都没有显示出来。 首先我想要任何一年:我尝试的两种方法是:

//*@yr[event/en='general meeting']   

/calendar/year[event/en='general meeting']@yr 

但是没有一个是正确的。 您想如何解决这个问题?

最佳答案

目前尚不清楚您在问什么,但有时对尝试的解决方案进行评论比尝试解释更容易。

以下 XPath 表达式有效:

/calendar/year[event/en='general meeting']/@yr

它的作用如下:

Select year elements, but only if they have a child element event, which in turn has a child element en, whose textual content is "general meeting". Of those year elements select the attribute yr.

对于您显示的输入文档,只有一个这样的属性符合条件,因此输出将为

 yr="2015"

这就是你的想法吗?如果没有,请显示(而不是试图解释)您期望从表达式得到的输出 - 并解释为什么应选择此结果。

关于java - JAVA中如何获取XPath查询结果的父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30076900/

相关文章:

java - XML 解析为 Java - 获取根属性值

mysql - 使用 XPATH fn :concat in MySQL ExtractValue does not process more than two arguments

xml - XSL : position() in template match vs position() in select

java - ElasticSearch Multiple Data Directories,选择放置索引的位置

java - 为什么在创建迭代器对象后无法向 java 中的 ArrayList 添加值

xml - 从使用 namespace 的 XML 文档中提取数据

xml - 获取没有特定祖先 xml xpath 的节点

jquery - Selenium 中的 XPath 定位器与 JQuery 定位器

java - JOptionPane 出现问题并使其正常工作

java - 使用对象和字符串加载微调器