小编Bug*_*ray的帖子

如何使用 XSL 在某个子节点级别添加新元素?

我正在尝试帮助朋友解决计算机课程带回家的测验。我有一个简单的 XML 文件,如下所示,它定义了我在我的书架上拥有的 DVD 标题......

<Inventory>
    <DVD>
        <Name>Captain America</Name>
    </DVD>
    <DVD>
        <Name>Green Lantern</Name>
    </DVD>
    <DVD>
        <Name>Thor</Name>
    </DVD>
</Inventory>
Run Code Online (Sandbox Code Playgroud)

假设“美国队长”和“雷神”都已签出,而“绿灯侠”仍然可用。我想将上述 XML 文件转换为以下 XML ...

<Inventory>
    <DVD>
        <Name>Captain America</Name>
        <Status>Checked-Out</Status>
    </DVD>
    <DVD>
        <Name>Green Lantern</Name>
        <Status>Available</Status>
    </DVD>
    <DVD>
        <Name>Thor</Name>
        <Status>Checked-Out</Status>
    </DVD>
</Inventory>
Run Code Online (Sandbox Code Playgroud)

有人可以分享如何利用 XSL 将 Status 元素添加到每个节点吗?我只有下面的代码片段,但它为所有节点复制了相同的元素。

<xsl:template match="*">
    <xsl:copy>
        <xsl:copy-of select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="DVD">
    <xsl:copy>
        <xsl:copy-of select="@*|node()"/>
        <Status>Checked-Out</Status>
    </xsl:copy>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

非常非常非常非常感谢...

xml xslt

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

xml ×1

xslt ×1