I. Ecco come qualsiasi documento XML o frammento possono essere incorporati in un foglio di stile XSLT e utilizzati durante la trasformazione:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="my:my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<my:menu>
<menu>
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>
</my:menu>
<xsl:template match="/">
<xsl:copy-of select="document('')/*/my:menu/*"/>
</xsl:template>
</xsl:stylesheet>
Quando questa trasformazione viene applicato su qualsiasi documento XML (non usato in questo esempio), il risultato voluto (semplicemente copiando il codice XML) è prodotto:
<menu xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my:my">
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>
Ricorda: Qualsiasi XM L può essere incorporato in un foglio di stile XSLT, a condizione che sia racchiuso in un elemento con spazio dei nomi (lo spazio dei nomi non è lo spazio dei nomi XSLT) e questo elemento di spostamento è a livello globale (un elemento figlio dell'elemento <xsl:stylesheet>
(superiore)).
II. Accesso al file di menu XML che risiede in un file XML separato:
Per fare questo dobbiamo cambiare solo leggermente l'esempio precedente:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="document('menu.XML')/*"/>
</xsl:template>
</xsl:stylesheet>
Se il file di menu XML è nel file 'menu.XML'
(nella stessa directory del file fogli di stile XSLT, allora questa trasformazione produce esattamente lo stesso risultato come il precedente:
<menu>
<choice>A</choice>
<choice>B</choice>
<choice>C</choice>
</menu>
Do no TE: In entrambi i casi stiamo usando la funzione XSLT norma document()
Tipicamente, si definisce una variabile a livello globale, il cui valore è il risultato della chiamata della funzione document()
. Quindi questa variabile e il suo contenuto sono accessibili tramite espressioni XPath durante la trasformazione.
fonte
2011-01-16 03:21:10
Con "includi", vuoi dire che vuoi copiare/incollare il contenuto di menu.xml in un altro file e ospitarlo lì senza problemi, o intendi che vuoi in qualche modo accedere al menu di riferimento remoto. xml dal file host, o intendi che vuoi che il tuo server web copi il contenuto di menu.xml nel file host prima di servirlo, come se tu avessi copiato/incollato i contenuti da solo? – Phrogz
Ah, in un certo senso intendevo riferirlo dal file, escludendolo. Accidenti la mia programmazione parla. Anch'io uso per C. – Jookia
Buona domanda, +1. Vedi la mia risposta per la spiegazione e due esempi di codice completi che rispondono alle tue domande. :) –