Il mio problema è come aggiungere spazio dei nomi e prefisso per tutti gli elementi e gli attributi usando XSLT? mio xml ingresso come è ....Come aggiungere spazio dei nomi e prefisso per tutti gli elementi e gli attributi utilizzando XSLT?
<ProcessCreditMemo xmlns='CreditMemo'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
<ORDER_HEADERDetails>
<ORDER_HEADER>
<NAME>0010185214</NAME>
per essere ...
<ns0:ProcessCreditMemo xmlns='CreditMemo'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:ns0="http://tempuri.org/">
<ns0:ORDER_HEADERDetails>
<ns0:ORDER_HEADER>
<ns0:NAME>0010185214</NAME>
ho bisogno di aggiungere il prefisso "ns0:" per tutti gli elementi e gli attributi, e aggiungere lo spazio dei nomi "xmlns :. ns0 = "http://tempuri.org/" nell'intestazione "ProcessCreditMemo"
sto cercando di costruire un XSLT per farlo ...
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="node()|text()|@*">
<xsl:copy>
<xsl:if test="local-name()='ProcessCreditMemo'">
<xsl:attribute name="xmlns" namespace="http://tempuri.org/" />
</xsl:if>
ma l'XML risultante duplica il prefisso con un valore vuoto.
<ProcessCreditMemo xmlns="CreditMemo"
xmlns:ns0="http://tempuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ns0:xmlns="">
Sto usando un codice simile a mio frammento di XSLT, ma la mia eclissi continua a visualizzare il messaggio di errore XPath non valida per .... .. Tuttavia, la conversione xml funziona perfettamente. –