0
我有以下输入XML:对_any_子节点使用'contains' - 只匹配第一个孩子?
<relations>
<parent>
<child>a</child>
<child>b</child>
<child>c></child>
</parent>
<parent>
<child>x</child>
<child>y</child>
<child>z></child>
</parent>
</relations>
而我感兴趣的只是在处理其子节点(任何人)的含有特定字符串“父”节点;我创建了以下XSLT(1.0) - 但这显然只对第一个孩子应用'contains'函数?
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-templates select="relations" />
</xsl:template>
<xsl:template match="relations">
<xsl:apply-templates select="parent[ contains(child, 'a') ]" />
</xsl:template>
<xsl:template match="parent">
<xsl:text>FOUND A MATCH, </xsl:text>
</xsl:template>
</xsl:stylesheet>
那就是:如果我不过是一个“A”或“X”“包含”功能为我输入的文件,我得到一个匹配,但如果我把一个“B”,“C” ,'y'或'z' - 它不再返回true。
如何重新编写这个匹配项,当任何孩子匹配包含?
谢谢 - 证实了这一工作:我测试“ b'(这是一个孩子)和'h'(不是) - 结果证实了这一点。我在等SOF计时器让我接受答案。 – monojohnny