Incluso un file XML in un file XML / XSL

Quindi attualmente sto facendo un po ‘di lavoro XML-> XSLT- (HTML5 / CSS3). In questo momento ho un file menu.xml e mi piacerebbe includerlo nel file XSL o nella pagina XML. Ho fatto molte ricerche, ma non sono in grado di trovare una risposta semplice.

Quindi, come posso includere un file XML in un altro file XML o in un file XSL?

Modifica: includendo, intendo referenziamento / caricamento da un altro file, non copiarlo e incollarlo o semplicemente incorporarlo.

I. Ecco come qualsiasi documento o frammento XML può essere incorporato in un foglio di stile XSLT e utilizzato durante la trasformazione :

     A B C       

Quando questa trasformazione viene applicata su qualsiasi documento XML (non utilizzato in questo esempio), viene prodotto il risultato desiderato (copiatura dell’XML) :

  A B C  

Ricorda : qualsiasi XML può essere incorporato in un foglio di stile XSLT, a condizione che sia racchiuso in un elemento con namespace (lo spazio dei nomi non è lo spazio dei nomi XSLT) e questo elemento di spostamento è a livello globale (un figlio di (in alto) elemento).

II. Accesso al file di menu XML che si trova in un file XML separato :

Per fare questo dobbiamo modificare solo leggermente l’esempio precedente:

        

Se il file XML del menu si trova nel file 'menu.XML' (nella stessa directory del file del foglio di stile XSLT, questa trasformazione produce esattamente lo stesso risultato della precedente:

  A B C  

Nota : in entrambi i casi utilizziamo il document() funzione XSLT standard document()

In genere, si definisce una variabile a livello globale, il cui valore è il risultato della chiamata alla funzione document() . Quindi questa variabile e il suo contenuto sono accessibili tramite espressioni XPath durante la trasformazione.

Quindi, come posso includere un file XML in un altro file XML o in un file XSL?

È ansible utilizzare un’ quadro esterna per fare riferimento al file menu.xml e includere il contenuto in un file XML o XSLT (o entrambi).

Includendo, intendo referenziamento / caricamento da un altro file, non copiarlo e incollarlo o semplicemente incorporarlo.

Utilizzando entity framework esterne, è ansible fare riferimento / caricare il contenuto menu.xml da file esterni e non è necessario duplicare il contenuto XML.

Ad esempio, se volessi il contenuto menu.xml incluso nel tuo XSLT, dichiareresti l’entity framework esterna nel tuo XSLT in questo modo:

   ]>  

e potrebbe quindi fare riferimento come faresti con qualsiasi altra entity framework:

 &menu; 

Quando l’XSLT è stato analizzato, il riferimento all’ quadro verrà espanso e il contenuto XML del menu.xml verrà incluso come parte del documento XSLT come se fosse stato copiato / incollato nel punto in cui si trovava il riferimento all’entity framework.

Ho un post sul blog su questo. Si usa document () per ottenere l’altro XML e passare il contenuto usando i parametri.

Non ero in grado di far funzionare il codice fornito dalle persone. Tuttavia ho avuto una soluzione dopo aver provato diverse cose. Assegna un nome a un file xml clGroup.xml (le prime due lettere non contano, ma sto cercando di trovare “Gruppo” .Questo file xml farà riferimento all’xml che vuoi analizzare.

clGroup xml:

     caGroup.xml  

Ora denominare un file caGroup.xml e inserire il seguente codice:

    Calendar Calendar [email protected]   Week1   Test01 Young Men Weekly 02 Elders Home Teaching Message Birthday 03  04  05 #Young Men Weekly   Week2 06 Fast Sunday 07 FHE 08 Young Men Tonight #Young Men Weekly going to Bishops storehouse 6PM to 7PM Young Men Weekly 09  10 Scout Round Table at 7 PM  11  12    

Ora ecco il mio file XSLT calendarGroup.xslt

       Table      
Sunday Monday Tuesday Wednesday Thursday Friday Saturday

Il vantaggio di impostare il mio codice in questo modo è che posso creare facilmente l’xml da un file excel e non la metà da inserire in una dichiarazione nel file appena creato. È necessario che il formato “xxGroup” funzioni correttamente. È ansible aggiungere più gruppi al file clGroup e questi verranno analizzati in XSLT consentendo di includere più xml nello stesso parser XSLT. Assicurati che siano tutti nella stessa directory.

Se semplicemente l’incorporamento del file all’interno del file XML non è una soluzione, allora si dovrebbe aggiungere un campo url che il programma di interpretariato legge, si sta essenzialmente chiedendo l’equivalente di un include (menu.xml) o require (xml), ma in un file XML.

Quindi, dal momento che stai scrivendo il programma che sta interpretando il file, puoi aggiungere un tag o qualsiasi altra cosa tu voglia chiamarlo, che leggerà e inserirai la nota di root di menu.xml sul posto di .

Buona fortuna e i tuoi programmi possono sempre essere compilati.