我正在使用带有自定义命名空间的XML。我想编写XSTL来将此输入XML转换为输出XML,方法是在命名空间下转换所选元素,其他元素在输出XML中保持相同
实施例
<xml version="1.0">
<a dmlns:abc="http://abc.en.com/abc">
<abc:A>
<summary>Books</summary>
</abc:A>
</a>
我想将此XML转换为
<xml version="1.0">
<a>
<sample>
<summary>Book</summary>
</sample>
</a>
如何为此转换编写XSTL?
答案 0 :(得分:1)
考虑以下输入XML:
<?xml version="1.0" encoding="UTF-8"?>
<a xmlns:abc="http://abc.en.com/abc">
<abc:A>
<summary>Books</summary>
</abc:A>
<abc:B>just another element</abc:B>
</a>
应用此样式表时:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://abc.en.com/abc">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="abc:A">
<sample>
<xsl:apply-templates/>
</sample>
</xsl:template>
</xsl:stylesheet>
输出是:
<a xmlns:abc="http://abc.en.com/abc">
<sample>
<summary>Books</summary>
</sample>
<abc:B>just another element</abc:B>
</a>