RE: RE: [xsl] Dealing with <![CDATA[]]> when it can't be avoided

Subject: RE: RE: [xsl] Dealing with <![CDATA[]]> when it can't be avoided
From: cknell@xxxxxxxxxx
Date: Fri, 06 Jul 2007 09:36:34 -0400
Thanks. The "going further" idea occurred to me after I posted the message, although not as far as enclosing the individual list items in their own elements.

I'm at the point of wondering if XSLT is the best approach here. It's a helluva hammer, but is my problem really a nail?

I'll have to noodle it over some.

Thanks again.
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Michael Kay <mike@xxxxxxxxxxxx>
Sent:     Fri, 6 Jul 2007 14:12:47 +0100
To:       <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject:  RE: [xsl] Dealing with <![CDATA[]]> when it can't be avoided

> 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