Subject: RE: [xsl] Newline problems From: "Vishwajit Pantvaidya" <pantvaidya@xxxxxxxxxxx> Date: Mon, 05 May 2003 16:47:57 -0700 |
From: "Lars Huttar" <lars_huttar@xxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: RE: [xsl] Newline problems Date: Mon, 5 May 2003 13:32:50 -0500
> I made changes to apply normalize-space to text nodes as > suggested but > output again has no data. Do you see any obvious mistakes? > Simplified src > xml and xsl are as shown below: > ----------------------------------------------XML------------------ > <!DOCTYPE ABC [ > ... > ]><ABC> > ... > <info> > <attr> > <name> > ponumber</name> > <atomicValue> > 12345</atomicValue> > </attr> > ... > </info> > ... > </ABC> > > ----------------------------------------------XSL------------------ > > <?xml version = "1.0" encoding = "UTF-8"?> > <xsl:transform xmlns:xsl = > "http://www.w3.org/1999/XSL/Transform" version = > "1.0"> > <xsl:template match = "ABC"> > <xsl:text disable-output-escaping="yes"><!DOCTYPE > OrderProcessing></xsl:text> > <xsl:element name = "Order"> > <xsl:element name ="Info"> > <xsl:apply-templates mode = "Attribs" select = "/ABC/info"/> > </xsl:element> > </xsl:element> > </xsl:template> > ... > <xsl:template mode = "Attribs" match = "info"> > <xsl:apply-templates mode = "stripNewline" select="text()"/> > <xsl:element name = "PO_NUMBER"> > <xsl:value-of select="attr/atomicValue[../name='ponumber']"/> > </xsl:element> > ... > </xsl:template> > > <xsl:template mode = "stripNewline" match="text()"> > <xsl:value-of select="normalize-space(.)"/> > </xsl:template> > ... > </xsl:transform>
Vishwajit, it sounds like you are expecting the stripNewline template to modify the source document, actually removing the newlines from it so that the following xsl:value-of will be able to recognize the node you're looking for. That approach will not work, because in XSL you're not able to modify the source document. (That would be a side- effect, which you're not supposed to be able to do.)
I believe what you want to do here is
<xsl:template mode = "Attribs" match = "info">
<xsl:element name = "PO_NUMBER">
<xsl:value-of select="attr/atomicValue[normalize-space(../name)='ponumber']"/>
</xsl:element>
...
</xsl:template>
Lars
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Newline problems, Vishwajit Pantvaidya | Thread | RE: [xsl] Newline problems, me |
RE: [xsl] Newline problems, Vishwajit Pantvaidya | Date | Re: [xsl] An XSL:Choose Issue., Ben Trafford |
Month |