lucke84
lucke84

Reputation: 4636

DOM4J: retrieve value of a node filtering by attribute value

I have a given xml structured like this:

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

With SAXReader (DOM4J), how can I get the value contained into the node with id = 1 ('aaa' in the example)?

I've tried this:

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

where elem is the right "path.current", but it didn't work.

Probably I'm writing the condition with a wrong syntax.. suggestions?

Upvotes: 2

Views: 4980

Answers (2)

forty-two
forty-two

Reputation: 12817

The xpath syntax looks fine, but you should use the selectSingleNode method instead.

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

Upvotes: 3

Andrew Skiba
Andrew Skiba

Reputation: 103

You can try the full XPath: /elem/val[@id='1'] or any parent wildcard //val[@id='1']

Upvotes: 0

Related Questions