Re: [xsl] Howto follow embedded Xpaths in XSL

Subject: Re: [xsl] Howto follow embedded Xpaths in XSL
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Thu, 12 Aug 2010 11:26:59 +0100
No, there's no standard way to do this in XSLT. But many products have extensions, usually called something like xx:evaluate().

In Saxon, look for saxon:evaluate-node(). (this version of the function is explicitly designed for XPath expressions held in source documents, for example it takes the namespace context from the place where the XPath expression appears, not from the stylesheet).

Michael Kay
Saxonica


On 12/08/2010 11:20, Daniel Laird wrote:
Hi

I am new to XSL and relatively new to XML as well.
I have
some XML that as an attribute has a value that is an xpath to another
location within the same document - however it is not a child etc.
Is there any way for XSL to get the value of this node and then get the value of nodes at this location?

<root>
     <component displayName="Component 1">
         <stream displayName="Elementary Stream" reference="/root[1]/anotherElement[1]">
             <node value="bob">
         </stream>
     </component>
     <anotherElement>
         <magicNumber value="27"/>
     </anotherElement>
</root>

So in the above example, I want to do an XSL function that
1. finds all components
2. For each component get the value of<magicNumber>  that is linked from the reference attribute of my component node.

In
  this example it does not look very helpful but my real data is massive
and this would stop lots of repeated nodes and data etc (effectively
symlinks within the document)

Hope this is clear and you can help
Dan

Current Thread