<storybody>
要在 XSLT 中做到这一点,您只需要一个基本的身份转换,元素除外。
像这样的东西:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="storybody">
<body>
<xsl:apply-templates select="@*|node()"/>
</body>
</xsl:template>
</xsl:stylesheet>
编辑
我已阅读您的评论,“我不想使用身份转换。而是我需要在文档中的一个元素上使用身份转换”,并且不清楚您需要什么。也许您对文档的其余部分进行了转换,但在使用此元素时遇到了问题?在这种情况下,除了您已经编写的内容之外,您应该只使用我的答案中的第二个模板。
您的消息的第二部分在标记中部分丢失了,但现在已修复,我忽略了它。要将<URI>
元素也更改为 an <a>
,您应该添加另一个模板。假设你想把原来的ref
属性改成href
,两者加起来是这样的
<xsl:template match="storybody">
<body>
<xsl:apply-templates select="@*|node()"/>
</body>
</xsl:template>
<xsl:template match="storybody//URI">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@ref" />
</xsl:attribute>
</a>
</xsl:template>
如果您的意图与此不同,请澄清,我们将进一步帮助您。