首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT按属性复制

XSLT按属性复制
EN

Stack Overflow用户
提问于 2018-11-14 05:48:59
回答 2查看 93关注 0票数 0

我有个问题。不能仅复制XSLT中具有特定属性的节点。我的XML;

代码语言:javascript
复制
<root>
<mouse code="red"> .. </mouse>
<mouse code="blue"> .. </mouse>
<mouse code="green"> .. </mouse>
</root>

我试图只复制带有红色属性的节点,以获得这样的XML:

代码语言:javascript
复制
<root>
<mouse code="red"> .. </mouse>
</root>

这可以通过简单的XSLT转换来完成吗?

DeLuka

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-14 07:03:00

你可以简单地做:

代码语言:javascript
复制
<xsl:template match="/root">
    <xsl:copy>
        <xsl:copy-of select="mouse[@code='red']"/>
    </xsl:copy>
</xsl:template>
票数 1
EN

Stack Overflow用户

发布于 2018-11-14 06:49:32

这可以简单地通过xsl:模板来完成,这些模板匹配您想要的节点,并使用copy/copy。

代码语言:javascript
复制
<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’中还有其他元素,那么您需要使用另一个模板来处理它们。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53293894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档