我必须删除与ConfigR(attribute)相关联的肥皂名称空间。
在XSLT内部,我正在使用XSL Copy,因此排除前缀不起作用。
我在下面尝试过,但是没有用。任何人都可以建议。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<xsl:output indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="soapenv:*">
<xsl:apply-templates select="@* | node()"/>
</xsl:template>
</xsl:stylesheet>
输入-
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ConfigR>
Inside I have some more input.
</ConfigR>
</soapenv:Body>
</soapenv:Envelope>
Now in Output I am getting:
<ConfigR xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
答案 0 :(得分:1)
您可以替换现有模板:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
具有以下内容:
<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>
您可以找到它here