2012-02-19 25 views
14

A continuación es mi XSL¿Cómo eliminar el espacio de nombres del xml de salida?

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:ms="http://www.test.com/schemas/test" 
xmlns:ns="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="ms ns"> 
<xsl:output method="xml" indent="yes"/> 

<xsl:template match="/"> 
<XMLResponse>   
    <xsl:apply-templates select="ms:ProductRS/ms:Product"/> 
</XMLResponse> 
</xsl:template> 
<-- some templates here --> 
</xsl:stylesheet> 

En la salida i conseguir, como a continuación

<?xml version="1.0" encoding="UTF-16"?> 
<XMLResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<Product>-----</Product> 
</XMLResponse> 

Necesito quitar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" de la salida XML

+0

Lo entorno en que estas trabajando, y es la única referencia al espacio de nombres xsi en esa línea XMLResponse? –

+0

¿Por qué necesita eliminar ese espacio de nombres? ¿Por qué quieres? –

Respuesta

41

Para excluir un espacio de nombres, entonces debería representar de esta manera : -

exclude-result-prefixes="ms ns xsi "

Básicamente su hoja de estilo se parece a esto: -

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:ms="http://www.test.com/schemas/test" 
xmlns:ns="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="ms ns xsi"> 
+1

Alternativamente, si el prefijo xsi no se usa en ninguna parte de la hoja de estilo y no se desea en la salida, simplemente elimine la declaración. –

+0

muy útil, ¡gracias! – ClaudioM

Cuestiones relacionadas