最近、Firefoxを使用してWebページをデバッグすると、XMLがブラウザのみをサポートするJavaScript XSLTステートメントを発見しました。 JavaScript XSLTをプロセスXMLに導入するインターネット上のいくつかの記事は、基本的にAJAXに基づいています。
無力に、私はJavaScript XSLT処理XMLディスプレイページの小さな関数を書きました。今、私はあなたと共有するために投稿しています、私はあなたが私に改善のためのいくつかの提案を与えることができることを願っています。
Firefoxでは、XSLTProcessorオブジェクトを使用してXMLを処理します。主にこのオブジェクトの2つの方法を使用してください。
1。TransformTofragment()。
2。TransformTodocument()。
次のコードは、transformTofragment()メソッドのみを使用してXMLファイル処理を実装します。 JavaScript XSLTを使用してFireFoxでXMLファイルを処理することに興味がある場合は、TransformTodocument()メソッドを使用して実装された処理機能に次のコードを書き換えようとします。
JavaScriptコードは次のとおりです。
コードコピーは次のとおりです。
関数initialize(){
var xmldoc;
var xsldoc;
//ブラウザタイプを決定します
if(document.implementation && document.implementation.createdocument)
{
// Mozillaブラウザをサポートします
試す
{
xmldoc = document.implementation.createdocument( "" "、" "、null);
xmldoc.async = false;
xmldoc.load( "guestbook/guestbook.xml");
}
キャッチ(e)
{
アラート( "エラー:001");
}
試す
{
xsldoc = document.implementation.createdocument( "" "、" "、null);
xsldoc.async = false;
xsldoc.load( "guestbook/guestbook.xsl");
}
キャッチ(e)
{
アラート( "エラー:002");
}
試す
{
// XSLTProcessorオブジェクトを定義します
var xsltprocessor = new xsltprocessor();
XSLTPROCERSOR.IMPORTSTYLESHEET(XSLDOC);
var oresultfragment = xsltprocessor.transformtofragment(xmldoc、document);
//解析されたテキストをページに出力します
var odiv = document.getElementById( "guestbookpanel");
odiv.appendChild(oresultfragment);
}
キャッチ(e)
{
アラート( "エラー:003");
}
}
else if(typeof windof.activexobject!= 'undefined'))
{
// var xmldoc = server.createObject( "msxml2.domdocument.4.0");
// IEブラウザをサポートします
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");
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( "guestbook/guestbook.xml");
xsldoc = document.implementation.createdocument( "" "、" "、null);
xsldoc.async = false;
xsldoc.load( "guestbook/guestbook.xsl");
// XSLTProcessorオブジェクトを定義します
var xsltprocessor = new xsltprocessor();
XSLTPROCERSOR.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(typeof windof.activexobject!= 'undefined'))
{
試す
{
// IEブラウザをサポートします
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");
guestbookpanel.innerhtml = xmldoc.documentelement.transformnode(xsldoc);
}
キャッチ(e)
{
Alert( "XML/XSL処理を実行できません");
}
}
それ以外
{
alert( "ブラウザ不明!");
}