我有个问题。不能仅复制XSLT中具有特定属性的节点。我的XML;
<root>
<mouse code="red"> .. </mouse>
<mouse code="blue"> .. </mouse>
<mouse code="green"> .. </mouse>
</root>我试图只复制带有红色属性的节点,以获得这样的XML:
<root>
<mouse code="red"> .. </mouse>
</root>这可以通过简单的XSLT转换来完成吗?
DeLuka
发布于 2018-11-14 07:03:00
你可以简单地做:
<xsl:template match="/root">
<xsl:copy>
<xsl:copy-of select="mouse[@code='red']"/>
</xsl:copy>
</xsl:template>发布于 2018-11-14 06:49:32
这可以简单地通过xsl:模板来完成,这些模板匹配您想要的节点,并使用copy/copy。
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="mouse[@code='red']">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>当然,如果鼠标@code=‘red’中还有其他元素,那么您需要使用另一个模板来处理它们。
https://stackoverflow.com/questions/53293894
复制相似问题