Имейте этот XML, и мне нужно удалить все префиксы, я сделал это раньше, но есть специальный префикс NS2, который Im не удалось удалить.XSL - Как удалить это конкретное префикс пространства имен?
проверка:
Входной XML
<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">
<NS1:Header>
<NS2:responseHeader xmlns:NS2="http://test.com">
<systemId>SI</systemId>
<messageId>000001</messageId>
<timestamp>2015-01-16T10:10:09.872983</timestamp>
<responseStatus>
<statusCode>Success</statusCode>
</responseStatus>
</NS2:responseHeader>
</NS1:Header>
<NS1:Body>
<NS2:modificarSolicitudDeCreditoResponse xmlns:NS2="http://test2.com/21"/>
</NS1:Body>
</NS1:Envelope>
Мой XSLT:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="NS2:modificarSolicitudDeCreditoResponse">
<modificarSolicitudDeCreditoResponse>
<xsl:apply-templates select="@*|node()"/>
</modificarSolicitudDeCreditoResponse>
</xsl:template>
<xsl:template match="NS1:Header">
<Header>
<xsl:apply-templates select="@*|node()"/>
</Header>
</xsl:template>
<xsl:template match="NS2:responseHeader">
<responseHeader>
<xsl:apply-templates select="@*|node()"/>
</responseHeader>
</xsl:template>
<xsl:template match="NS1:Body">
<Body>
<xsl:apply-templates select="@*|node()"/>
</Body>
</xsl:template>
<xsl:template match="/*">
<Envelope>
<xsl:apply-templates select="node()" />
</Envelope>
</xsl:template>
</xsl:stylesheet>
И это мой выход:
<?xml version='1.0' ?>
<Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/"
<Header>
<responseHeader>
<systemId>AW0856</systemId>
<messageId>0000012</messageId>
<timestamp>2015-01-16T10:10:09.872983</timestamp>
<responseStatus>
<statusCode>Success</statusCode>
</responseStatus>
</responseHeader>
</Header>
<Body>
<NS2:modificarSolicitudDeCreditoResponse xmlns:NS2="http://test2.com/21">
</Body>
</Envelope>
Im проблемы Снятие NS2 после тело t аг, Кто-нибудь знает, как я могу добиться этого, благодаря
Просьба указать точный результат, который вы ожидаете получить. –