XSLT sul client
Se il browser supporta XSLT, quindi il browser che può essere utilizzato per convertire i documenti in XHTML.
soluzione JavaScript
Nel capitolo precedente, abbiamo insegnato come utilizzare XSLT per trasformare un documento XML in XHTML. Lo facciamo attraverso le seguenti modalità: Aggiunto foglio di stile XSL per il file XML, e completare la conversione attraverso un browser.Anche se l'effetto di questo metodo è molto buona, i riferimenti foglio di stile non sono sempre soddisfacenti (ad esempio, nel browser XSLT non riconosce questo approccio non funziona) è incluso nel file XML.
approccio più generale è quello di usare JavaScript per completare la conversione.
Utilizzando JavaScript, possiamo:
- Il browser per test di conferma
- A seconda del browser e le esigenze degli utenti di utilizzare un foglio di stile diverso
Questo è il fascino XSLT! XSLT è uno progettato per rendere i dati da un formato ad un altro formato possibile e supportare diversi tipi di browser e diverse esigenze degli utenti.
Cliente trasformazione XSLT diventerà il futuro uno dei principali compiti svolti dal browser, e vedremo la sua crescita (Braille, i browser auditivi, stampanti di rete, dispositivi palmari, etc.) in un particolare mercato dei browser.
documenti XML e file XSL
Guardate questo nella sezione precedente ha mostrato fuori un documento XML:
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
E che accompagna foglio di stile XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Si prega di notare, il file XML non contiene un riferimento al file XSL.
IMPORTANTE: La frase sopra significa, file XML possono utilizzare diversi fogli di stile XSL diversi da convertire.
Nel browser convertire XML in XHTML
Questo è per il client di file XML in codice sorgente XHTML:
Esempi
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else
{
xhttp=new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="example" />
</body>
</html>
Prova »
Suggerimento: se non si sa come scrivere JavaScript, si prega di studiare la nostra esercitazione JavaScript .
Esempi spiegano:
loadXMLDoc function ()
Funzione loadXMLDoc () viene utilizzata per caricare i file XML e XSL.
Esso controlla il tipo di browser e l'utente deve caricare il file.
Funzione displayResult ()
Questa funzione viene utilizzata per definire il file XML stile di visualizzazione utilizzando i file XSL.
- Caricamento di file XML e XSL
- gli utenti di prova hanno il tipo di browser
- Se il supporto del browser oggetti ActiveX dell'utente:
- Utilizzare il metodo transformNode () del foglio di stile XSL per il documento XML
- Impostare il documento corrente (id = "example") contiene lo stile corpo è stato applicato documenti XML
- Se il browser dell'utente non supporta gli oggetti ActiveX:
- Creare un nuovo file oggetto e l'importazione XSL XSLTProcessor
- Utilizzare il metodo transformToFragment () del foglio di stile XSL per il documento XML
- Impostare il documento corrente (id = "example") contiene lo stile corpo è stato applicato documenti XML