Subject: RE: Dealing with <![CDATA[]]> when it can't be avoided
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 6 Jul 2007 14:12:47 +0100
|
> I have thought of enclosing the list in its own element,
>
> <sql><![CDATA[SELECT * FROM users WHERE status IN
> (]]><list>'alive,'awake','sentient'</list>><![CDATA[)]]></sql>
Why not go further:
<sql><![CDATA[SELECT * FROM users WHERE status IN
>
(]]><list><item>alive</item><item>awake</item><item>sentient</item></list>><
![CDATA[)]]></sql>
>
> but there isn't any XSLT construct to permit me to select all
> the content of an element EXCEPT the content of the child
> <list>. Or at least I can't think of one.
You can select all the child text nodes: sql/text().
But the usual way of processing mixed content in XSLT is apply-templates:
<xsl:template match="sql">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="sql/list">...
<xsl:template match="sql/text()">...
Michael Kay
http://www.saxonica.com/
|