|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: recreating elements with attributes
Gruenewald, Terry wrote:
I'm performing an XML to XML transformation and I need to make some modifications to a few attributes during this transformation. I've tried the following code, but I'm stuck as to how to print the "<" sign and ">" sign. I've tried using the < and >, but the transformation process just then litterally puts in < and >. > <xsl:template match="//CDRS/TOLL_CDR"> > > > <TOLL_CDR > <xsl:text> > </xsl:text> > <xsl:for-each select="@*"> > <xsl:value-of select="name()" />="<xsl:value-of select="." />"<xsl:text> > </xsl:text> > </xsl:for-each> > /> > > </xsl:template> Ouch. XSLT is *not* a macro language, or whatever you expect. XSLT is a language which describes a transformation from a source tree of nodes into a result tree. The nodes in both trees represent mainly XML elements, attributes and text. You have really to get this: you *don't* create a string with angle brackets. You create a result tree. After this has sunken in, you might realize that you have to create
attributes in the result tree either with xsl:attribute or by copying
them from the source tree in an appropriate context. In your case,
you are basically looking for the generic copy template. Somewhat
more specific
<xsl:template match="CDRS/TOLL_CDR">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>It pays off to get one of the introductionary books about XSLT and read the first few chapters, which should explain in detail what is going on here. J.Pietschmann XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








