我有一个XML,在那个XML中我有一个元素< storybody>它本身有几个元素,现在我想要的是复制每个< storybody>并更改< URI>标签在< storybody>与< a>。
请记住,我只需要为< storybody>执行此操作在文件中。
XML结构:
<mothertag>
<atag>
asdfasdfa
</atag>
<storybody>
<p>sometext here<URI ref="http://google.com" /> some more text</p>
</storybody>
</mothertag>
现在我想将此URI更改为标记。
答案 0 :(得分:0)
您需要使用其他模板扩充 identity transformation 以匹配您想要重命名的节点。像这样:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*" />
<xsl:output indent="yes" method="html" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="URI">
<TAG>
<xsl:apply-templates select="@* | node()"/>
</TAG>
</xsl:template>
</xsl:stylesheet>
应用于(更正结束storybody
标记中的拼写错误):
<mothertag>
<atag>
asdfasdfa
</atag>
<storybody>
<p>sometext here<URI ref="http://google.com" /> some more text</p>
</storybody>
</mothertag>
产地:
<mothertag>
<atag>
asdfasdfa
</atag>
<storybody>
<p>sometext here
<TAG ref="http://google.com"></TAG> some more text
</p>
</storybody>
</mothertag>