我想使用XSLT将XML文件传输到其他XML。我想进行转换,因为XML文件不是纯树形文档。
以前是我的文件:
<uglyStartTag></uglyStartTag>
<name>content</name>
<uglyEndTag></uglyEndTag>
或
<uglyStartTag/>
<name>content</name>
<uglyEndTag/>
以下是我的文件:
<beautyTag>
<name>content</name>
</beautyTag>
我该怎么办?我对XSLT并不熟悉,所以我会感谢任何建议。
答案 0 :(得分:1)
此转化:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match=
"node()[preceding-sibling::uglyStartTag
and
following-sibling::uglyEndTag
][1]">
<beautyTag>
<xsl:copy-of select=
"../node()[preceding-sibling::uglyStartTag
and
following-sibling::uglyEndTag
]
"/>
</beautyTag>
</xsl:template>
</xsl:stylesheet>
应用于此XML文档(由评论中的OP提供):
<t>
<uglyStartTag />
<name>dgsdgsdgsdg</name>
<uglyEndTag />
</t>
会产生想要的正确结果:
<beautyTag>
<name>dgsdgsdgsdg</name>
</beautyTag>