<xsl:template match="//a//b">...</xsl:template>
几乎完全符合我的要求。但它没有选择例如这个:( b在里面的b里面)
<x>
<y>
<a>
<b>
<b>THIS</b>
</b>
</a>
</y>
</x>
有人有想法吗?
我试过这个,同样的事情:
<xsl:template match="//b[ancestor::a]">
答案 0 :(得分:1)
它没有选择例如这一个:( b&#39; s&#39; s内部&#39; s)
首先,匹配不选择,它匹配。因此,//
前缀不会对匹配模式执行任何操作。在任何情况下,所有这些匹配模式:
match="//a//b"
match="a//b"
match="//b[ancestor::a]">
match="b[ancestor::a]">
将匹配示例中的 b
元素。如果您正在寻找其他内容,请检查您的方法:最有可能的是,您的模板不会应用任何模板 - 因此处理器永远不会进入内部b
。