根据我对XSLT的理解,我无法弄清楚它与什么匹配。
<xsl:template match="*|/">
答案 0 :(得分:2)
XPath匹配是相对于匹配的XML中的“当前节点”(即当前位置)。
*
匹配当前节点的所有子元素,而/
匹配根 - 而只匹配根 - 无论当前节点是什么。
另请注意,root不是XML的根元素,它实际上是它上面的一个级别 - 根元素是根的子元素。
如果你有这个XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/|*">
<item name="{name()}">
<xsl:apply-templates/>
</item>
</xsl:template>
</xsl:stylesheet>
并将其应用于此XML:
<rootElement>
<subElement1/>
<subElement2/>
</rootElement>
你明白了:
<item name="">
<item name="rootElement">
<item name="subElement1" />
<item name="subElement2" />
</item>
</item>
第一个<item name="">
对应/
的匹配(不是元素,因此没有名称),其他是*
的匹配。