최근에 Firefox를 사용하여 웹 페이지를 디버그했습니다. XML을 처리하는 일부 JavaScript XSLT 문은 IE 브라우저 만 지원하는 것을 발견했습니다. XML을 처리하기 위해 JavaScript XSLT를 소개하는 인터넷의 일부 기사는 기본적으로 AJAX를 기반으로합니다.
무력하게, 나는 JavaScript XSLT Processing XML 디스플레이 페이지의 작은 기능을 썼습니다. 이제 저는 여러분과 공유하기 위해 게시하고 있습니다. 개선을위한 몇 가지 제안을하시기 바랍니다.
Firefox에서 XSLTProcessor 객체를 사용하여 XML을 처리하여 주로이 객체의 두 가지 방법을 사용합니다.
1. TransfortOfragment ().
2. TransformTodocument ().
다음 코드는 변형 변환 () 메소드 만 사용하여 XML 파일 처리를 구현합니다. javaScript XSLT를 사용하여 Firefox에서 XML 파일을 처리하는 데 관심이 있으시면 TransformTodocument () 메소드를 사용하여 구현 된 처리 기능으로 다음 코드를 다시 작성하려고 할 수도 있습니다.
JavaScript 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
function initialize () {
var xmldoc;
var xsldoc;
// 브라우저 유형을 결정합니다
if (document.implementation && document.implementation.createdocument)
{
// Mozilla 브라우저를 지원합니다
노력하다
{
xmldoc = document.implementation.createdocument ( "", "", null);
xmldoc.async = false;
XMLDOC.LOAD ( "Greathbook/Greashbook.xml");
}
캐치 (e)
{
경고 ( "오류 : 001");
}
노력하다
{
xsldoc = document.implementation.createdocument ( "", "", null);
xsldoc.async = false;
XSLDOC.LOAD ( "Greathbook/Greathbook.xsl");
}
캐치 (e)
{
경고 ( "오류 : 002");
}
노력하다
{
// XSLTProcessor 객체를 정의합니다
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importstylesheet (xsldoc);
var oresultfragment = xsltprocessor.transformtofragment (xmldoc, document);
// 구문 분석 된 텍스트를 페이지에 출력합니다
var odiv = document.getElementById ( "GreathbookPanel");
Odiv.appendChild (OresultFragment);
}
캐치 (e)
{
경고 ( "오류 : 003");
}
}
else if (typeof window.activexObject! = 'undefined')
{
// var xmldoc = server.createObject ( "msxml2.dodocument.4.0");
// IE 브라우저를 지원합니다
xmldoc = new ActiveXobject ( 'microsoft.xmldom');
xsldoc = new ActiveXobject ( 'microsoft.xmldom');
xmldoc.async = false;
xsldoc.async = false;
XMLDOC.LOAD ( "Greathbook/Greashbook.xml");
XSLDOC.LOAD ( "Greathbook/Greathbook.xsl");
grieshbookpanel.innerhtml = xmldoc.documentelement.transformnode (xsldoc);
}
또 다른
{
Alert ( "브라우저 알 수없는!");
}
}
JavaScript dom XSL 디스플레이 데이터를 처리하는 두 번째 방법입니다.
기본 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
var xmldoc;
var xsldoc;
// 브라우저 유형을 결정합니다
if (document.implementation && document.implementation.createdocument)
{
// Mozilla 브라우저를 지원합니다
노력하다
{
xmldoc = document.implementation.createdocument ( "", "", null);
xmldoc.async = false;
XMLDOC.LOAD ( "Greathbook/Greashbook.xml");
xsldoc = document.implementation.createdocument ( "", "", null);
xsldoc.async = false;
XSLDOC.LOAD ( "Greathbook/Greathbook.xsl");
// XSLTProcessor 객체를 정의합니다
var xsltprocessor = new xsltprocessor ();
xsltprocessor.importstylesheet (xsldoc);
// transformTodocument 메소드
var result = xsltprocessor.transformtodocument (xmldoc);
var xmls = new xmlserializer ();
document.getElementById ( "grieshBookPanel"). innerHtml = xmls.serializetoString (결과);
}
캐치 (e)
{
경고 ( "XML/XSL 처리 할 수 없음");
}
}
else if (typeof window.activexObject! = 'undefined')
{
노력하다
{
// IE 브라우저를 지원합니다
xmldoc = new ActiveXobject ( 'msxml2.document');
xsldoc = new ActiveXobject ( 'msxml2.dodocument');
xmldoc.async = false;
xsldoc.async = false;
XMLDOC.LOAD ( "Greathbook/Greashbook.xml");
XSLDOC.LOAD ( "Greathbook/Greathbook.xsl");
grieshbookpanel.innerhtml = xmldoc.documentelement.transformnode (xsldoc);
}
캐치 (e)
{
경고 ( "XML/XSL 처리 할 수 없음");
}
}
또 다른
{
Alert ( "브라우저 알 수없는!");
}