ホームページ >ウェブフロントエンド >jsチュートリアル >Firefox と互換性のある Javascript XSLT の XML ファイル処理_JavaScript のヒント

Firefox と互換性のある Javascript XSLT の XML ファイル処理_JavaScript のヒント

WBOY
WBOYオリジナル
2016-05-16 16:22:541762ブラウズ

最近、Firefox を使用して Web ページをデバッグしましたが、XML を処理するための一部の Javascript XSLT ステートメントは IE ブラウザのみをサポートしていることがわかりました。 XML を処理するための JavaScript XSLT を紹介するインターネット上の一部の記事は、基本的に AJAX に基づいています。

苦し紛れに、XML 表示ページを処理する Javascript XSLT の小さな関数を書きました。今、皆さんと共有するために投稿しています。改善のための提案をいただければ幸いです。
XSLTProcessor オブジェクトを使用して、Firefox で XML を処理します。主に、このオブジェクトの 2 つのメソッドを使用します。
1.transformToFragment()。

2.transformToDocument()。

次のコードは、XML ファイルを処理するために、transformToFragment() メソッドのみを使用します。JavaScript XSLT を使用して Firefox で XML ファイルを処理することに興味がある場合は、transformToDocument() メソッドを使用するように次のコードを書き換えてみることもできます。 . 処理機能。
Javascript コードは次のとおりです:

コードをコピー コードは次のとおりです:

関数初期化() {
    var xmlDoc;
    var xslDoc;

// 判断浏览器の種類
    if(document.implementation && document.implementation.createDocument)
    {
        // Mozilla 浏览器をサポート
        試してみてください
        {
            xmlDoc = document.implementation.createDocument("", "", null);   
            xmlDoc.async = false;
            xmlDoc.load("ゲストブック/ゲストブック.xml");
        }
        キャッチ(e)
        {
            アラート("エラー:001");
        }
        試してみてください
        {
            xslDoc = document.implementation.createDocument("", "", null);
            xslDoc.async = false;    
              xslDoc.load("ゲストブック/ゲストブック.xsl");
             
          }
          キャッチ(e)
          {
              アラート("エラー:002");
          }
          試してみてください
          {
              // 定义XSLTProcessor对オブジェクト
            var xsltProcessor = new XSLTProcessor();
            xsltProcessor.importStylesheet(xslDoc);
            var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
            // 将解析过の文本を页面に出力します
            var oDiv = document.getElementById("guestbookPanel");
            oDiv.appendChild(oResultFragment);
        }
        キャッチ(e)
        {
            アラート("エラー:003");
        }
    }
    else if(window.ActiveXObject の種類 != '未定義')
    {
        //var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");       
        // サポートIE浏览器
        xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        xslDoc = 新しい ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        xslDoc.async = false;    
        xmlDoc.load("ゲストブック/ゲストブック.xml");
          xslDoc.load("ゲストブック/ゲストブック.xsl");
        guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);   
    }
    それ以外
    {
        alert("ブラウザが不明です!");
    }
}

javascript dom は、XSL 表示データを処理する 2 番目の方法です。

メインコードは次のとおりです:

コードをコピーします コードは次のとおりです:

var xmlDoc;
var xslDoc;
// ブラウザの種類を決定します
if(document.implementation && document.implementation.createDocument)
{
// Mozilla ブラウザをサポート
試してみてください
{
xmlDoc = document.implementation.createDocument("", "", null); xmlDoc.async = false;
xmlDoc.load("ゲストブック/ゲストブック.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = false; xslDoc.load("ゲストブック/ゲストブック.xsl"); // XSLTProcessor オブジェクトを定義
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
//transformToDocument メソッド
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = new XMLSerializer();
Document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(result);
}
キャッチ(e)
{
alert("xml/xsl 処理を実行できません");
}
}
else if(window.ActiveXObject の種類 != '未定義')
{
試してみてください
{
//IE ブラウザをサポート
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xslDoc = new ActiveXObject('Msxml2.DOMDocument'); xmlDoc.async = false;
xslDoc.async = false; xmlDoc.load("ゲストブック/ゲストブック.xml");
xslDoc.load("ゲストブック/ゲストブック.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
キャッチ(e)
{
alert("xml/xsl 処理を実行できません");
}
}
それ以外
{
alert("ブラウザが不明です!");
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。