tags:

views:

943

answers:

3

Hi there,

I am having trouble constructing a single XPath statement to return a set of attributes comprising of attributes of two or more different names.

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"
A: 

Why do you want to do this? Seems you would be better off looping through all 'line' nodes and then grabbing the alpha and beta attribute from each. But really I'm not fully understanding the problem. Can you provide more details?

Aaron Palmer
+3  A: 

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

//@alpha | //@beta
Oppositional
+2  A: 
//@*[name()='alpha' or name()='beta']
Mads Hansen