0

我想使用 XSLT 将xml:id=foo属性添加到 DocBook 文件中的顶级<book>节点。我有一些工作,但我想知道是否有更简单的方法来实现它。这是我目前的解决方案:

<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
                xmlns:db='http://docbook.org/ns/docbook'
                version='1.0'>

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

<xsl:template match="db:book">
    <xsl:copy>
        <xsl:attribute name="xml:id">
            <xsl:text>foo</xsl:text>
        </xsl:attribute>
            <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>
4

1 回答 1

1

你可以缩短

    <xsl:attribute name="xml:id">
        <xsl:text>foo</xsl:text>
    </xsl:attribute>

    <xsl:attribute name="xml:id">foo</xsl:attribute>

但除此之外,你的方法很好。并且您的版本可能更适合可读性。

于 2013-10-20T09:18:12.780 回答