我试图遍历一些XML,直到找到包含文本字符串的元素。
采用一个非常简单的XML示例。
<document>
<item>
<thing1>Fee</thing1>
<thing2>Fi</thing2>
<thing3>Fo</thing3>
<some blah="Thingy">Fum</some>
<another>I Smell</another>
<other>Someone</other>
</item>
</document>
我希望能够搜索包含“thing”的任何元素,我之前已经看过这样做过这样的属性......
<xsl:for-each test="contains(@blah,'Thingy')"></xsl:for-each>
但是我想搜索“thing1,thing2,thing3”,然后获得他们的<xsl:value-of select"." />
,这将是费,Fi和Fo。我需要排除其他元素,因为它们不会包含字符串“thing”
答案 0 :(得分:1)
尝试:
<xsl:for-each select="*[contains(name(), 'thing')]">
或者,为了更好地适应给定的例子:
<xsl:for-each select="*[starts-with(name(), 'thing')]">
两者都可以从item
的上下文中调用。