>  기사  >  웹 프론트엔드  >  Firefox 호환 Javascript XSLT 처리 XML 파일_javascript 팁

Firefox 호환 Javascript XSLT 처리 XML 파일_javascript 팁

WBOY
WBOY원래의
2016-05-16 16:22:541749검색

최근 Firefox를 사용하여 웹페이지를 디버깅했는데 XML 처리를 위한 일부 Javascript XSLT 문이 IE 브라우저만 지원한다는 사실을 발견했습니다. XML을 처리하기 위해 JavaScript XSLT를 소개하는 인터넷 기사 중 일부는 기본적으로 AJAX를 기반으로 합니다.

절박한 마음에 XML 표시 페이지를 처리하기 위한 Javascript XSLT의 작은 함수를 작성했습니다. 이제 모든 사람과 공유하기 위해 게시합니다. 개선을 위한 몇 가지 제안을 해주실 수 있기를 바랍니다.
XSLTProcessor 개체를 사용하면 주로 이 개체의 두 가지 메서드를 사용하여 Firefox에서 XML을 처리할 수 있습니다.
1. 변환으로Fragment().

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");
        }
        잡기(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 = false;
        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 = false;
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 = new 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 = false;
xslDoc.async = 거짓
xmlDoc.load("guestbook/guestbook.xml");
xslDoc.load("guestbook/guestbook.xsl");
guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);
}
잡기(e)
{
Alert("xml/xsl 처리를 할 수 없습니다.");
}
}
그 외
{
Alert("알 수 없는 브라우저입니다!");
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.