2012-02-19 20 views
14

Qui di seguito è il mio xslCome rimuovere lo spazio dei nomi dall'output xml?

<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> 

In uscita i ottenendo come qui di seguito

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

Devo rimuovere xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" dal output XML

+0

Quale ambiente stai lavorando, ed è l'unico riferimento allo spazio dei nomi XSI in quella linea XMLResponse? –

+0

Perché è necessario rimuovere tale spazio dei nomi? Perché vuoi? –

risposta

41

Per escludere uno spazio dei nomi allora si dovrebbe rappresentare in questo modo : -

exclude-result-prefixes="ms ns xsi "

Fondamentalmente il tuo foglio di stile assomiglia a questo: -

<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

In alternativa, se il prefisso xsi non viene utilizzato da nessuna parte nel foglio di stile e non desiderato nell'output, rimuovere la dichiarazione. –

+0

molto utile, grazie! – ClaudioM

Problemi correlati