Beh, se uso questo foglio di stile:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="node/text()">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
su questo file XML:
<?xml version="1.0" encoding="utf-8"?>
<node id=1 text="Book Information" ><![CDATA[This is sample text]]></node>
ottengo un errore di analisi, perché è id=1
XML non valido.
Mettere le virgolette attorno al valore di attributo (id="1"
) ed eseguire nuovamente il foglio di stile, ottengo come output:
Questo è il testo del campione
Quindi c'è un inizio. Fondamentalmente, considera il CDATA come un nodo di testo e sei sulla buona strada.
Lei ha detto:
ho trovato qualcosa di simile:
<xsl:output cdata-section-elements="text"/>
e poi a prendere CDATA:
<xsl:value-of select="node" />
Questo approccio funziona bene se si sta utilizzando value-of
anche. Qui sarebbe un esempio lungo le linee del tuo commento, usando invece value-of
. Si noti, tuttavia, che cdata-section-elements
funziona solo sul lato di uscita, ad indicare quale output di elementi XML si desidera stampare come sezioni CDATA invece di semplici dati di carattere vecchio. Non ha nulla a che fare con lo che preleva i dati da.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output cdata-section-elements="foo"/>
<xsl:template match="/">
<foo>
<xsl:value-of select="node"/>
</foo>
</xsl:template>
</xsl:stylesheet>
stampe fuori
<?xml version="1.0"?>
<foo><![CDATA[This is sample text]]></foo>
fonte
2010-06-03 06:21:06
provato con il modello. Ma non sta restituendo alcun valore. –
Quale modello? –
In realtà, da varie risorse ho trovato qualcosa di simile; e quindi per recuperare CDATA; Non restituisce nulla. –