[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|