如何使用XSL从XML中删除属性并从XML中删除根元素
我想从XML中删除属性和根元素 输入XML:如何使用XSL从XML中删除属性并从XML中删除根元素,xml,xslt,Xml,Xslt,我想从XML中删除属性和根元素 输入XML: <OrderList> <Order> <Extn ExtnTest="" ExtnVoid="" /> </Order> </OrderList> 所需的XML是 <Order> <Extn ExtnTest="" /> </Order> 所以我想删除根元素(OrderList)和属性(ExtnVoi
<OrderList>
<Order>
<Extn ExtnTest="" ExtnVoid="" />
</Order>
</OrderList>
所需的XML是
<Order>
<Extn ExtnTest="" />
</Order>
所以我想删除根元素(OrderList)和属性(ExtnVoid)
我正在使用下面的XSL,但它不起作用,请帮助
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/OrderList/@ExtnVoid" />
<xsl:template match="/">
<xsl:copy-of select="/OrderList/*"/>
</xsl:template>
</xsl:stylesheet>
从标识转换开始,您可以通过将模板仅应用于子元素,然后使用不需要的属性来移除包装器:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/OrderList">
<xsl:apply-templates select="*"/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@ExtnVoid" />
</xsl:stylesheet>