Récemment, j'ai utilisé Firefox pour déboguer les pages Web et j'ai constaté que certaines instructions JavaScript XSLT qui ne traitent que XML ne prennent en charge que le navigateur IE. Certains articles sur Internet qui introduisent JavaScript XSLT pour traiter XML sont essentiellement basés sur AJAX.
Insisamment, j'ai écrit une petite fonction des pages d'affichage XML JavaScript XSLT. Maintenant, je poste pour partager avec vous, j'espère que vous pourrez me donner quelques suggestions d'amélioration.
Dans Firefox, en utilisant l'objet XSLTProcessor pour traiter XML, en utilisant principalement deux méthodes de cet objet:
1. TransformTofragment ().
2. TransformToDocument ().
Le code suivant utilise uniquement la méthode transformtofragment () pour implémenter le traitement de fichiers XML. Si vous êtes intéressé à utiliser JavaScript XSLT pour traiter les fichiers XML dans Firefox, vous pourriez aussi bien essayer de réécrire le code suivant dans une fonction de traitement implémentée à l'aide de la méthode TransformToDocument ().
Le code JavaScript est le suivant:
La copie de code est la suivante:
fonction initialize () {
var xmldoc;
var xsldoc;
// déterminer le type de navigateur
if (document.implementation && document.implementation.CreateDocument)
{
// Soutenir le navigateur Mozilla
essayer
{
xmlDoc = document.implementation.CreateDocument ("", "", null);
xmldoc.async = false;
XMLDOC.Load ("Guestbook / Guestbook.xml");
}
attraper (e)
{
alert ("Erreur: 001");
}
essayer
{
xslDoc = document.implementation.CreateDocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Guestbook / Guestbook.xsl");
}
attraper (e)
{
alert ("Erreur: 002");
}
essayer
{
// définir l'objet XSLTProcessor
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importStylesHeet (xsLDoc);
var oresultFragment = xsltprocessor.transformtofragment (xmldoc, document);
// Sortie du texte analysé à la page
var odiv = document.getElementById ("GuetBookPanel");
Odiv.ApendChild (OresultFragment);
}
attraper (e)
{
alert ("Erreur: 003");
}
}
else if (typeof window.activexobject! = 'undefined')
{
// var xmldoc = server.createObject ("msxml2.domDocument.4.0");
// Support IE Browser
xMLDOC = new activeXObject ('Microsoft.xmldom');
xslDoc = new activeXObject ('Microsoft.xmldom');
xmldoc.async = false;
xsldoc.async = false;
XMLDOC.Load ("Guestbook / Guestbook.xml");
xsldoc.load ("Guestbook / Guestbook.xsl");
cuestbookpanel.innerhtml = xmlDoc.DocumentElement.transformNode (xsLDoc);
}
autre
{
alert ("Browser inconnu!");
}
}
JavaScript DOM La deuxième façon de traiter les données d'affichage XSL.
Le code principal est le suivant:
La copie de code est la suivante:
var xmldoc;
var xsldoc;
// déterminer le type de navigateur
if (document.implementation && document.implementation.CreateDocument)
{
// Soutenir le navigateur Mozilla
essayer
{
xmlDoc = document.implementation.CreateDocument ("", "", null);
xmldoc.async = false;
XMLDOC.Load ("Guestbook / Guestbook.xml");
xslDoc = document.implementation.CreateDocument ("", "", null);
xsldoc.async = false;
xsldoc.load ("Guestbook / Guestbook.xsl");
// définir l'objet XSLTProcessor
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importStylesHeet (xsLDoc);
// Méthode TransformtoDocument
var result = xsltprocessor.transformToDocument (xMLDOC);
var xmls = new xmlSerializer ();
document.getElementById ("GuetBookPanel"). InnerHtml = xmls.SerializetoString (résultat);
}
attraper (e)
{
alert ("Impossible de faire du traitement XML / XSL");
}
}
else if (typeof window.activexobject! = 'undefined')
{
essayer
{
// Support IE Browser
xMLDOC = new activeXObject ('msxml2.domDocument');
xslDoc = new activeXObject ('msxml2.domDocument');
xmldoc.async = false;
xsldoc.async = false;
XMLDOC.Load ("Guestbook / Guestbook.xml");
xsldoc.load ("Guestbook / Guestbook.xsl");
cuestbookpanel.innerhtml = xmlDoc.DocumentElement.transformNode (xsLDoc);
}
attraper (e)
{
alert ("Impossible de faire du traitement XML / XSL");
}
}
autre
{
alert ("Browser inconnu!");
}