DOM4J:检索按属性值过滤的节点的值

时间:2011-03-22 11:27:34

标签: xml dom4j

我有一个给定的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”,但它不起作用。

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

2 个答案:

答案 0 :(得分:3)

xpath语法看起来很好,但你应该使用selectSingleNode方法。

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

答案 1 :(得分:0)

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