Subject: Re: XML transformation based on parameters
From: Emiliano Pecis <emiliano.pecis@xxxxxxxxx>
Date: Tue, 14 Apr 2009 17:00:19 +0200
|
Martin,
thanks a lot!! Making one small change to your code I obtained what I
wanted to do.
Now, I should apply 2 external parameters to this code (p and v):
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="p" select="id" />
<xsl:param name="v" select="newvalue" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="param[@name=' { $p } ']">
<xsl:text>{ $v }</xsl:text>
</xsl:template>
<xsl:template match="param">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
but it doesn't work! What other am I missing?
Vasu, this my question should answer to your one! :)
Thanks again!!!!
e.
2009/4/14 Vasu Chakkera <vasucv@xxxxxxxxx>:
>> <Catalog>
>> <Id> newvalue </Id>
>> </Catalog>
>
> where will you get this "newvalue" from ? Presumably it wont be in the
> XML.. or will it?
> Vasu
>
> 2009/4/14 Emiliano Pecis <emiliano.pecis@xxxxxxxxx>:
>> Hi All,
>>
>> I'm using latest version of Stylus Studio, to develop a XSLT (based on
>> Saxon 9.0.1.5 processor) to do the following simple (should be)
>> transformation.
>>
>> From XML:
>>
>> <GetCatalog>
>> <ListOfCatalog>
>> <Catalog>
>> <Id> <param name="same/new">foo</param> </Id>
>> </Catalog>
>> </ListOfCatalog>
>> </GetCatalog>
>>
>> The destination must depends on "name" attribute of param element. If
>> name="same" the following XML must be returned:
>>
>> <GetCatalog>
>> <ListOfCatalog>
>> <Catalog>
>> <Id> foo </Id>
>> </Catalog>
>> </ListOfCatalog>
>> </GetCatalog>
>>
>> Otherwise:
>>
>> <GetCatalog>
>> <ListOfCatalog>
>> <Catalog>
>> <Id> newvalue </Id>
>> </Catalog>
>> </ListOfCatalog>
>> </GetCatalog>
>>
>> In both cases <param> element has to be removed.
>>
>> Now, I have two issues. First of all the management of this
>> "parameters".Secondly, every xml elements (GetCatalog, ListOfCatalog,
>> etc etc) could change: only tag "param" will be the same.
>>
>> Thanks a lot in advance,
>> emiliano
>>
>>
>
>
>
> --
> Vasu Chakkera
> Numerical Algorithms Group Ltd.
> Oxford
> www.vasucv.com
|