Subject: RE: [xsl] trouble with contains() From: "Sullivan, Dan" <dsullivan@xxxxxxxxxxx> Date: Tue, 4 Sep 2001 12:06:34 -0700 |
<xsl:for-each select="element[subelement[contains(.,'foo')]]"> is what you need. It selects all elements that have a subelement that contains 'foo'. Your for-each expression is applying contains to a node set (the children of element that are subelements). contains is looking for a string so it coerces the nodeset to a string by coercing the first element in the node set to a string. This will only find elements whose first child subelement contains 'foo'. Dan -----Original Message----- From: Charles Yates [mailto:cyates@xxxxxxxxxxxxxxxxxxxx] Sent: Tuesday, September 04, 2001 2:31 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] trouble with contains() 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. Thanks for any suggestions, Charles XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] trouble with contains(), Michael Kay | Thread | Re: [xsl] trouble with contains(), Charles Yates |
[xsl] Combining XMLs, Kevin_Gutch | Date | Re: [xsl] trouble with contains(), Charles Yates |
Month |