[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Dealing with when it can't be avoided


Subject: RE: [xsl] 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/


Current Thread
Keywords