Re: [xsl] Using XSLT to change XML and modify node with XPath

Subject: Re: [xsl] Using XSLT to change XML and modify node with XPath
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 3 Feb 2009 22:38:01 GMT
something like this, perhaps. (It's hard to tell your requiremnts from
this example) Note that it is an error to use an element name of xml
this (any element name beginning with xml) is reserved for use by w3c
for use in future xml specs.

David


<xsl:stylesheet version="2.0"
		xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:template match="*">
 <xsl:copy>
  <xsl:copy-of select="@*"/>
  <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>


<xsl:template match="path">
 <xsl:copy>
  <xsl:copy-of select="@*"/>
  <xsl:attribute name="path" select="key('p',.)"/>
  <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

<xsl:key name="p" match="def/val" use="../name"/>

</xsl:stylesheet>



$ saxon9  p.xml p.xsl
<?xml version="1.0" encoding="UTF-8"?><xml>
 <def>
     <name>Var1</name>
     <val>0</val>
         <def>
         <name>SubVar</name>
         <val>012</val>
     </def>
 </def>
 <def>
     <name>Var2</name>
     <val>1</val>
 </def>
 <test-node>
         <use>
             <var-path>
                 <path path="0">Var1</path>
                 <path path="012">SubVar</path>
             </var-path>
         </use>
 </test-node>
</xml>

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread