熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

如何使用Javascript XSLT 處理XML文件

2013-11-23 19:07:37  來源: Java核心技術 

  

  最近使用Firefox進行網頁的調試發現有些Javascript XSLT處理XML的語句僅僅支持IE浏覽器而網絡中的一些介紹javascript XSLT 處理XML的文章基本上都是依據AJAX來做的
    無奈中自己寫了一個Javascript XSLT處理XML展現頁面的小功能現在帖出來和大家共享希望大家給點改進意見
    在Firefox中使用XSLTProcessor對象處理XML主要使用該對象的兩個方法
transformToFragment()
transformToDocument()
    下面的代碼僅僅使用transformToFragment()方法來實現對XML文件處理如果你對在Firefox中使用Javascript XSLT 處理XML文件感興趣的話不妨試著將以下代碼改寫成使用transformToDocument()方法來實現的處理功能
Javascript 代碼如下

function initialize() {
    var xmlDoc;
    var xslDoc;

    // 判斷浏覽器的類型
    if(documentimplementation && documentimplementationcreateDocument)
    {       
        // 支持Mozilla浏覽器
        try
        {
            xmlDoc = documentimplementationcreateDocument( null);   
            xmlDocasync = false;
            xmlDocload(guestbook/guestbookxml);
        }
        catch(e)
        {
            alert(error:);
        }
        try
        {
            xslDoc = documentimplementationcreateDocument( null);
            xslDocasync = false;    
              xslDocload(guestbook/guestbookxsl);
             
          }
          catch(e)
          {
              alert(error:);
          }
          try
          {
              // 定義XSLTProcessor對象   
            var xsltProcessor = new XSLTProcessor();
            xsltProcessorimportStylesheet(xslDoc);
            var oResultFragment = xsltProcessortransformToFragment(xmlDocdocument);
            // 將解析過的文本輸出到頁面
            var oDiv = documentgetElementById(guestbookPanel);
            oDivappendChild(oResultFragment);
        }
        catch(e)
        {
            alert(error:);
        }   
    }
    else if(typeof windowActiveXObject != undefined)
    {       
        //var xmlDoc=ServerCreateObject(MsxmlDOMDocument);       
        // 支持IE浏覽器
        xmlDoc = new ActiveXObject(MicrosoftXMLDOM);
        xslDoc = new ActiveXObject(MicrosoftXMLDOM);
        xmlDocasync = false;
        xslDocasync = false;    
        xmlDocload(guestbook/guestbookxml);
          xslDocload(guestbook/guestbookxsl);
        guestbookPanelinnerHTML = xmlDocdocumentElementtransformNode(xslDoc);   
    }
    else
    {
        alert(Browser unknown!);
    }
}

  javascript dom 處理XSL顯示數據的第二種方式

  主要代碼如下

  var xmlDoc;
 var xslDoc;

  // 判斷浏覽器的類型
 if(documentimplementation && documentimplementationcreateDocument)
 {  
  // 支持Mozilla浏覽器
  try
  {
   xmlDoc = documentimplementationcreateDocument( null); 
   xmlDocasync = false;
   xmlDocload(guestbook/guestbookxml);
 
   xslDoc = documentimplementationcreateDocument( null);
   xslDocasync = false;  
     xslDocload(guestbook/guestbookxsl);     
   
     // 定義XSLTProcessor對象 
   var xsltProcessor = new XSLTProcessor();
   xsltProcessorimportStylesheet(xslDoc);
    // transformToDocument方式
    var result = xsltProcessortransformToDocument(xmlDoc);
    var xmls = new XMLSerializer();
    documentgetElementById(guestbookPanel)innerHTML = xmlsserializeToString(result);
   
  }
  catch(e)
  {
   alert(Unable to do xml/xsl processing);
  } 
 }
 else if(typeof windowActiveXObject != undefined)
 {
  try
  {
   // 支持IE浏覽器
   xmlDoc = new ActiveXObject(MsxmlDOMDocument);
   xslDoc = new ActiveXObject(MsxmlDOMDocument);
   xmlDocasync = false;
   xslDocasync = false;  
   xmlDocload(guestbook/guestbookxml);
     xslDocload(guestbook/guestbookxsl);
   guestbookPanelinnerHTML = xmlDocdocumentElementtransformNode(xslDoc);
  }
  catch(e)
  {
   alert(Unable to do xml/xsl processing);
  }
 }
 else
 {
  alert(Browser unknown!);
 }

  (注由於代碼書寫簡單故沒有寫過多的注釋敬請諒解!)


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26306.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.