我有一个看起来像这样的XML:
<parent>
<child1/>
<child2/>
<child3/>
<child4/>
<child5/>
<child6/>
</parent>
我有一个模板,仅匹配如下所示的特定孩子:
<xsl:template match="parent/child1|parent/child4|parent/child6/>
有没有办法只写一次“ parent”标签,然后用简化的表达式写“ child”标签,女巫看起来像这样?
<xsl:template match="parent/(child1|child4|child6)"/>
答案 0 :(得分:1)
您可以尝试
<xsl:template match="parent/*[self::child1 or self::child4 or self::child6]"/>
答案 1 :(得分:1)
在这个特定的示例中,您可以只写一个
<xsl:template match="child1|child4|child6"/>
如果XML中还有其他parent
个元素具有您不想删除的其他父元素,则只需担心会添加child1
。如果不是这种情况,您可以改写为...
<xsl:template match="(child1|child4|child6)[parent::parent]"/>
编辑:如评论中所述,这仅在XSLT 3.0及更高版本中有效。