最近、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 コードは次のとおりです。
functioninitialize() {
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 = 新しい XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// 解析されたテキストをページに出力します
var oDiv = document.getElementById("guestbookPanel");
oDiv.appendChild(oResultFragment);
}
キャッチ(e)
{
アラート("エラー:003");
}
}
else if(ウィンドウの種類.ActiveXObject != '未定義')
{
//var xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
//IEブラウザをサポート
xmlDoc = 新しい 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("ブラウザが不明です!");
}
、
XSL 表示データを処理する 2 番目の方法です。
メインコードは次のとおりです
。
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 = 新しい XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
//transformToDocument メソッド
var result = xsltProcessor.transformToDocument(xmlDoc);
var xmls = 新しい XMLSerializer();
document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(result);
}
キャッチ(e)
{
alert("xml/xsl 処理を実行できません");
}
}
else if(ウィンドウの種類.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("ブラウザが不明です!");
}