| Subject: [xsl] trouble with contains() From: Charles Yates <cyates@xxxxxxxxxxxxxxxxxxxx> Date: Tue, 04 Sep 2001 11:30:32 -0700 | 
XML: <root> <element> <subelement>booga</subelement> <subelement>foobar</subelement> </element> <element> <subelement>more text</subelement> <subelement>even more text</subelement> </element> </root>
desired output: A document with all the <elements> that have a particular substring in a <subelement>.
What works:
<xsl:template match="/root">
 <xsl:copy>
   <xsl:for-each select="element[contains(subelement,'boo')]">
     <xsl:copy-of select="."/>
   </xsl:for-each>
 </xsl:copy>
</xsl:template>Also works: <xsl:for-each select="element[subelement = 'foobar']">
What doesn't: <xsl:for-each select="element[contains(subelement,'foo')]">
Problem:
    My XPath with contains() is only checking the first
<subelement> it encounters.  I am getting around this
at the moment by doing a <xsl:for-each select="subelement">
and building a string variable with all of them and then
checking that with contains().  This is a pain though because
in my actual application the stylesheet is dynamically generated
and needs to be able to check a fairly complex document for
multiple different strings in different elements.  It would
be great if I could do this with a single XPath expression.| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: [xsl] Problem running xalan's s, Alarcon, Fabio | Thread | RE: [xsl] trouble with contains(), Michael Kay | 
| RE: [xsl] default meta tag Revisted, Robert Koberg | Date | RE: [xsl] Weird behavior with attri, Nesbitt, David | 
| Month |