【问题标题】:DOM4J: retrieve value of a node filtering by attribute valueDOM4J:检索按属性值过滤的节点的值
【发布时间】:2011-03-22 11:27:33
【问题描述】:

我有一个如下结构的给定 xml:

<elem>
     <val id="1">aaa</val>
     <val id="2">bbb</val>
</elem>

使用 SAXReader (DOM4J),如何获取包含在 id = 1 的节点中的值(示例中为“aaa”)?

我试过了:

String value = elem.element("val[@id='1']")

其中 elem 是正确的“path.current”,但它不起作用。

可能我用错误的语法编写条件.. 建议?

【问题讨论】:

  • 其他注意事项:您必须引用您要查找的属性值,例如"val[@id=1]" 不会匹配任何东西!

标签: xml dom4j


【解决方案1】:

xpath 语法看起来不错,但您应该改用 selectSingleNode 方法。

Node value = elem.selectSingleNode("val[@id='1']/text()");

【讨论】:

    【解决方案2】:

    您可以尝试完整的 XPath:/elem/val[@id='1'] 或任何父通配符 //val[@id='1']

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2011-06-02
      • 1970-01-01
      • 2019-05-10
      • 2011-05-31
      • 1970-01-01
      相关资源
      最近更新 更多