Subject: [xsl] XSL/XPath 2.0 - most efficient way to find route to target element From: Robert Koberg <rob@xxxxxxxxxx> Date: Sat, 26 Apr 2008 11:27:07 -0400 |
Hi, In the xml structure below, imagine: - all nodes have name (not necessarily unique) and id (o;?unique) attributes - you are in the context of node[@id='a3'] and you want to build a path from the name attribute to node[@id='b3'] that would result in the shortest path, which would be: ../../../bar/baz/bat - and in another case you are in the context of node[@id='c3'] and you want the shortest path to node[o;?@id='b3'], which would be: ../../baz/bat - and in another case you are in the context of node[@id='b4'] and you want the shortest path to o;?node[o;?@id='b3'], which would be: bat What is the most efficient to find those paths? (this is to create page relative links, rather than root relative, for html pages) In the past I have just recursed up the ancestry of the calling node to the root element and for each of those added a '../'. Then used a key to find the target node and recurse up from that target to root prepending the name attribute. Now, using XSL and XPath version 2, I am hoping there is a clean, efficient way to find the shortest possible path rather than going all the way to the root when it is not necessary. <node name="foo" id="x"> <node name="bar" id="b1"> <node> <node/> <node/> </node> <node name="baz" id="b2"> <node name="bat" id="b3"/>o;? <node name="bat" id="b4"/> </node> <node>o;? <node name="saz" id="c2"> <node name="sat" id="c3"/> </node> </node> </node> <node name="gar" id="a1"> <node name="gaz" id="a2"> <node name="gat" id="a3"/> <node/> </node> <node> <node/> </node> <node> <node/> </node> </node> </node>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Creating dynamic spreadsheets, Hewitt, Cheryl | Thread | Re: [xsl] XSL/XPath 2.0 - most effi, David Carlisle |
Re: [xsl] Conditional String Substi, Dimitre Novatchev | Date | Re: [xsl] XSL/XPath 2.0 - most effi, David Carlisle |
Month |