في الآونة الأخيرة ، استخدمت Firefox لتصحيح صفحات الويب ووجدت أن بعض عبارات JavaScript XSLT التي تعالج XML تدعم فقط متصفح IE. تعتمد بعض المقالات على الإنترنت التي تقدم JavaScript XSLT لمعالجة XML بشكل أساسي على AJAX.
بلا حول ولا قوة ، كتبت وظيفة صغيرة من صفحات عرض JavaScript XSLT معالجة XML. الآن أنا أنشر لمشاركته معك ، وآمل أن تتمكن من إعطائي بعض الاقتراحات للتحسين.
في Firefox ، باستخدام كائن XSLTProcessor لمعالجة XML ، بشكل أساسي باستخدام طريقتين من هذا الكائن:
1. transformtofragment ().
2. transfortodocument ().
يستخدم الكود التالي فقط طريقة تحويل revideToFragment () لتنفيذ معالجة ملفات XML. إذا كنت مهتمًا باستخدام JavaScript XSLT لمعالجة ملفات XML في Firefox ، فقد تحاول أيضًا إعادة كتابة الكود التالي في وظيفة معالجة تم تنفيذها باستخدام طريقة TransformTodocument ().
رمز JavaScript كما يلي:
نسخة الكود كما يلي:
تهيئة الدالة () {
var xmldoc ؛
var xsldoc ؛
// تحديد نوع المتصفح
if (document.implementation && document.implement.createdocument)
{
// دعم متصفح Mozilla
يحاول
{
xmldoc = document.implementation.createdocument ("" ، "" ، null) ؛
xmldoc.async = false ؛
XMLDOC.LOAD ("دفتر الزوار/poverbook.xml") ؛
}
الصيد (ه)
{
تنبيه ("خطأ: 001") ؛
}
يحاول
{
XSlDOC = document.implementation.createdocument ("" ، "" ، null) ؛
XSlDoc.async = false ؛
XSLDOC.LOAD ("دفتر الزوار/poverbook.xsl") ؛
}
الصيد (ه)
{
تنبيه ("خطأ: 002") ؛
}
يحاول
{
// تحديد كائن XSLTProcessor
var xsltprocessor = new xsltprocessor () ؛
XSLTProcessor.ImportStylesheet (XSLDOC) ؛
var oresultfragment = xsltprocessor.transformtofragment (xmldoc ، document) ؛
// إخراج النص المستوحى إلى الصفحة
var odiv = document.getElementById ("poverbookpanel") ؛
Odiv.AppendChild (oresultfragment) ؛
}
الصيد (ه)
{
تنبيه ("خطأ: 003") ؛
}
}
وإلا
{
// 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 ("دفتر الزوار/poverbook.xml") ؛
XSLDOC.LOAD ("دفتر الزوار/poverbook.xsl") ؛
poestbookpanel.innerhtml = xmldoc.documentElement.transformNode (xsldoc) ؛
}
آخر
{
تنبيه ("متصفح غير معروف!") ؛
}
}
JavaScript DOM الطريقة الثانية لمعالجة بيانات عرض XSL.
الرمز الرئيسي هو كما يلي:
نسخة الكود كما يلي:
var xmldoc ؛
var xsldoc ؛
// تحديد نوع المتصفح
if (document.implementation && document.implement.createdocument)
{
// دعم متصفح Mozilla
يحاول
{
xmldoc = document.implementation.createdocument ("" ، "" ، null) ؛
xmldoc.async = false ؛
XMLDOC.LOAD ("دفتر الزوار/poverbook.xml") ؛
XSlDOC = document.implementation.createdocument ("" ، "" ، null) ؛
XSlDoc.async = false ؛
XSLDOC.LOAD ("دفتر الزوار/poverbook.xsl") ؛
// تحديد كائن XSLTProcessor
var xsltprocessor = new xsltprocessor () ؛
XSLTProcessor.ImportStylesheet (XSLDOC) ؛
// طريقة transfortodocument
var result = xsltprocessor.transformtodocument (xmldoc) ؛
var xmls = new xmlserializer () ؛
document.getElementById ("poestbookpanel"). innerhtml = xmls.serializetoString (result) ؛
}
الصيد (ه)
{
تنبيه ("غير قادر على القيام بمعالجة XML/XSL") ؛
}
}
وإلا
{
يحاول
{
// دعم متصفح IE
XMLDOC = جديد ActiveXObject ('msxml2.domdocument') ؛
XSLDOC = جديد ActiveXObject ('msxml2.domdocument') ؛
xmldoc.async = false ؛
XSlDoc.async = false ؛
XMLDOC.LOAD ("دفتر الزوار/poverbook.xml") ؛
XSLDOC.LOAD ("دفتر الزوار/poverbook.xsl") ؛
poestbookpanel.innerhtml = xmldoc.documentElement.transformNode (xsldoc) ؛
}
الصيد (ه)
{
تنبيه ("غير قادر على القيام بمعالجة XML/XSL") ؛
}
}
آخر
{
تنبيه ("متصفح غير معروف!") ؛
}