최근에 Firefox를 사용하여 웹 페이지를 디버깅했는데 XML 처리를 위한 일부 Javascript XSLT 문이 IE 브라우저만 지원한다는 사실을 발견했습니다. XML을 처리하기 위해 JavaScript XSLT를 소개하는 인터넷 기사 중 일부는 기본적으로 AJAX를 기반으로 합니다.
필사적으로 XML 표시 페이지를 처리하기 위해 Javascript XSLT의 작은 함수를 작성했습니다. 이제 모든 사람과 공유하기 위해 게시합니다. 개선을 위한 몇 가지 제안을 해주실 수 있기를 바랍니다.
Firefox에서 XML을 처리하기 위해 XSLTProcessor 개체를 사용할 때 주로 이 개체의 두 가지 방법을 사용합니다.
1. 변환으로Fragment().
2. 문서로 변환().
다음 코드는 XML 파일을 처리하는 데에만 변환ToFragment() 메서드를 사용합니다. Firefox에서 XML 파일을 처리하기 위해 Javascript XSLT를 사용하는 데 관심이 있는 경우 다음 코드를 다시 작성하여 변환을 수행할 수도 있습니다. 처리 기능.
자바스크립트 코드는 다음과 같습니다:
function 초기화() {
var xmlDoc;
var xslDoc;
// 브라우저 유형을 결정합니다.
if(document.implementation && document.implementation.createDocument)
{
// Mozilla 브라우저 지원
노력하다
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = 거짓;
xmlDoc.load("guestbook/guestbook.xml");
}
잡기(e)
{
경고("오류:001");
}
노력하다
{
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = 거짓;
xslDoc.load("guestbook/guestbook.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 = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = 거짓;
xslDoc.async = 거짓;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc.load("guestbook/guestbook.xsl");
guestbookPanel.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 = 거짓;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc = document.implementation.createDocument("", "", null);
xslDoc.async = 거짓;
xslDoc.load("guestbook/guestbook.xsl");
//XSLTProcessor 객체 정의
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
// 변환ToDocument 메소드
var 결과 = xsltProcessor.transformToDocument(xmlDoc);
var xmls = 새로운 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 = 거짓;
xslDoc.async = 거짓;
xmlDoc.load("guestbook/guestbook.xml");
xslDoc.load("guestbook/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
잡기(e)
{
Alert("xml/xsl 처리를 할 수 없습니다.");
}
}
또 다른
{
Alert("알 수 없는 브라우저입니다!");
}