如何使用 XSLT1.0 从 XML 中删除类型属性
How to remove type attribute from XML using XSLT1.0
假设我有一个 XML 如下。
<CustomerOrder>
<CustomerId type="string">1000</CustomerId>
<CustomerName type="string">Johnny</CustomerName>
<Age type="Number">20</Age>
</CustomerOrder>
我需要编写 XSL 转换器,以便删除类型属性,最终输出应该如下所示。
<CustomerOrder>
<CustomerId>1000</CustomerId>
<CustomerName>Johnny</CustomerName>
<Age>20</Age>
</CustomerOrder>
有什么想法吗??
只需使用此样式表即可实现第一条评论中的建议:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<!-- identity template - copies everything as it is except for other rules matching -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<!-- Match all type attributes and ignore them -->
<xsl:template match="@type" />
</xsl:stylesheet>
假设我有一个 XML 如下。
<CustomerOrder>
<CustomerId type="string">1000</CustomerId>
<CustomerName type="string">Johnny</CustomerName>
<Age type="Number">20</Age>
</CustomerOrder>
我需要编写 XSL 转换器,以便删除类型属性,最终输出应该如下所示。
<CustomerOrder>
<CustomerId>1000</CustomerId>
<CustomerName>Johnny</CustomerName>
<Age>20</Age>
</CustomerOrder>
有什么想法吗??
只需使用此样式表即可实现第一条评论中的建议:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<!-- identity template - copies everything as it is except for other rules matching -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<!-- Match all type attributes and ignore them -->
<xsl:template match="@type" />
</xsl:stylesheet>