我正在从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实现这一目标?
提前致谢
答案 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/>