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 |