|
Subject: [xsl] normalize-space problems with child elements From: "Jelks Cabaniss" <jelks@xxxxxxxx> Date: Tue, 29 Mar 2005 12:39:03 -0500 |
I'm using the text output method to create a man page.
In my source XML, I have `<description>` elements which contain text and
`<code>` child elements. `<description>` is "pretty printed" (indented and
with line breaks) which is easily fixed with "normalize-space". So far so
good. But that does weird stuff to the `<code>` child elements -- it
removes the space before and after the `<code>foo</code>` so that the word
"foo" adjoins the surrounding text in the description output.
Example:
<description>This decribes how <code>FOO</code> is
supposed to work. Now "<code>bar</code>" is a
different story altogether.</description>
...
<xsl:template match="description">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="code">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)" />
</xsl:template>
Output:
This decribes howFOOis supposed to work.
Now "bar" is a different story altogether.
Since "bar" was surrounded by quotes and not whitespace, it worked. But see
how "FOO" was mangled by "normalize-space"?
If I change the `code` template to add spaces before and after, it fixes
"FOO", but breaks "bar":
<xsl:template match="code">
<xls:text> </xls:text>
<xsl:apply-templates />
<xls:text> </xls:text>
</xsl:template>
Is there a way to do this without involving a complex template with
substring processing, etc.?
/Jelks
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] New Developer Survey Show, Dimitre Novatchev | Thread | Re: [xsl] normalize-space problems , G. Ken Holman |
| Re: [xsl] Tricky inclusion match, Karl Stubsjoen | Date | Re: [xsl] Tricky inclusion match, Karl Stubsjoen |
| Month |