使用XSLT删除命名空间

时间:2015-12-19 13:25:12

标签: xml xslt xslt-1.0 xslt-2.0 xslt-grouping

我正在从MuleSoft生成XML文件,并生成像这样的空标签。如何使用XSLT删除它

<SerialNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

我尝试使用XSLT代码,

  <?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" indent="yes"/>
  <xsl:template match="*">
    <xsl:element name="{local-name(.)}">
      <xsl:apply-templates select="@* | node()"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="@*">
    <xsl:attribute name="{local-name(.)}">
      <xsl:value-of select="."/>
    </xsl:attribute>
  </xsl:template>
  <xsl:template match="@*[local-name(.)='noNamespaceSchemaLocation']"/>
</xsl:stylesheet>

它的生成输出如<SerialNumber nil="true"/>我想删除整个命名空间,输出应该看起来像<SerialNumber/>

如何使用XSLT实现这一目标?

提前致谢

2 个答案:

答案 0 :(得分:1)

如果您要删除该属性,请添加jQuery('#select_ullman').change(function () { if (jQuery(this).val() == '2') { jQuery('#ullman_seats input').attr('checked', true); jQuery('#ullman_seats_2 input').attr('checked', true); }if (jQuery(this).val() == '3') { jQuery('#ullman_seats input').attr('checked', true); jQuery('#ullman_seats_2 input').attr('checked', true); jQuery('#ullman_seats_3 input').attr('checked', true); }if (jQuery(this).val() == '4') { jQuery('#ullman_seats input').attr('checked', true); jQuery('#ullman_seats_2 input').attr('checked', true); jQuery('#ullman_seats_3 input').attr('checked', true); jQuery('#ullman_seats_4 input').attr('checked', true); } }

答案 1 :(得分:0)

  

我正在从MuleSoft生成XML文件并生成空标签   像这样。如何使用XSLT删除它

playcount

此转化

<SerialNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

应用于提供的XML文档

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="*">
    <xsl:element name="{local-name()}">
      <xsl:copy-of select="@*[not(name()='xsi:nil')]"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

生成想要的正确结果

<SerialNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

甚至可以使用更短的内容:

<SerialNumber/>