Subject:Problem getting only a single node and need an ELSE structure Author:Matt Mags Date:14 Aug 2007 08:49 AM Originally Posted: 14 Aug 2007 08:37 AM
How can I say grab the first instance of node X and only the first instance BUT if there are no node X's, grab the first instance of node Y and only the first?
Basically we want to work on the first nodes of whatever path exists and has "highest priority." Here highest priority is a predefined chain in which we work with the data.
So it would be work the first node of type A. If A[1] doesn't have all the attributes required, try A[2], then A[x]. If NONE of the A's have the right attributes, try node B[x] until we find one that satisfies the requirements.
I'm not very good with XSLT so this is kind of driving me crazy
Subject:Problem getting only a single node and need an ELSE structure Author:Tony Lavinio Date:14 Aug 2007 07:40 PM
In XSLT 2, it's very simple:
(A|B)[1]
To give a more concrete example, for the XML
<root>
<A x="1"/>
<A x="2"/>
<B x="1"/>
<B x="2"/>
<B x="3"/>
</root>
assuming your context were /root, this would find the first
A that had its @x attribute set to "3", or, failing that, the
first B that had its @x attribute set to "3".
(A[@x="3"]|B[@x="3"])[1]