chinna
chinna

Reputation: 535

How do I select multiple sets of attributes within an XML document using XPath?

I am having trouble constructing a single XPath statement to return two different sets of attributes.

For example take the following XML document:

<root>
 <line name="one" alpha="a1" beta="b1"/>
 <line name="two" alpha="a2" beta="b2"/>
 <line name="three" alpha="a3" beta="b3"/>
</root>

If I use the following XPath statement:

//@alpha

It yields the following attribute set:

alpha="a1"
alpha="a2"
alpha="a3"

What statement do I use to yield the following attribute set:

alpha="a1"
alpha="a2"
alpha="a3"
beta="b1"
beta="b2"
beta="b3"

Upvotes: 8

Views: 9690

Answers (2)

Oppositional
Oppositional

Reputation: 11211

By using the | operator in an XPath expression you can select several paths:

//@alpha | //@beta

Upvotes: 14

Mads Hansen
Mads Hansen

Reputation: 66723

//@*[name()='alpha' or name()='beta']

Upvotes: 12

Related Questions