欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Mozilla Gecko 用Javascript加載XSL

 更新時(shí)間:2007年01月09日 00:00:00   作者:  
在Mozilla Develop Center里,我們可以看到有以下的文章:http://developer.mozilla.org/en/docs/The_XSLT/JavaScript_Interface_in_Gecko:Basic_Example
首先,你需要了解如何動(dòng)態(tài)載入xml文件的方法,可以用XMLDOM對(duì)象,也可以用XMLHttpRequest,的responseXML對(duì)象,這里我用的是XMLHttpRequest。

用javascript載入xslt的方法如下:
1。用XMLDOM或者用XMLHttpRequest來加載xml和xslt。
2。用XSLTProcessor.importStylesheet來引入XSLT。
3。用XSLTProcessor.transformToFragment方法來把它轉(zhuǎn)換成DOM的Fragment。然后用appendChild或者用insertBefore等方法來追加或者插入這個(gè)DOM的fragment元素。
示例代碼
var ownerDocument = document.implementation.createDocument("", "test", null);
var newFragment = processor.transformToFragment(domToBeTransformed, ownerDocument);
當(dāng)然也可以用transformToDocument 
var newDocument = processor.transformToDocument(domToBeTransformed);
需要注意的是,轉(zhuǎn)換后的節(jié)點(diǎn)是Element或者是一個(gè)片段,所以要經(jīng)過下面的序列化才可使用obj.innerHTML=new Document
4。序列化。
(new XMLSerializer()).serializeToString(newDocument)
5。在IE中,可以用XMLDOM方法,xmldoc.transformNode(xslDocument)方法來進(jìn)行接的轉(zhuǎn)換。

首先,我們先建立一個(gè)XML文件與XSLT文件,方便后面的講解。
foo.xml
<?xml version="1.0" encoding="utf-8"?>
<Article>
<Title>javascript load xslt in ie and mozilla</Title>
<Author>never-online</Author>
  <Web>http://www.never-online.net</Web>
<Body>content is here</Body>
</Article>
foo.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="/">
<h1 class="title"><xsl:value-of select="/Article/Title"/></h1>
<div class="desc">Author: <xsl:value-of select="/Article/Author"/> - 
Web: <xsl:value-of select="/Article/Web"/></div>
<p class="box">
<xsl:value-of select="/Article/Body"/>
</p>
</xsl:template>
</xsl:stylesheet>
foo.html
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> convert xsl using javascript - http://www.never-online.net </title>
 <meta http-equiv="ImageToolbar" content="no" />
 <meta name="author" content="never-online, BlueDestiny"/>
 <meta name="keywords" content="never modules, Mozilla CSS, C#, .net, Refercence, BlueDestiny, never-online"/>
 <meta name="description" content="BlueDestiny, never-online"/>
 <meta name="title" content=" - http://www.never-online.net" />
 <meta name="creator.name" content="never-online, BlueDestiny" />
 <style type="text/css" media="all" title="Default">
.title { margin:10px 10% 0 10%; text-align:center; background-color:#639ACE; padding:10px; color:#fff; }
.desc { margin:10px 10% 0 10%; text-align:center; }
.box { margin:10px 10% 0 10%; border: 1px dotted #639ACE; padding:20px; }
 </style>
 <script type="text/javascript">
 //<![CDATA[

 //]]>
 </script>
 <body id="www.never-online.net">
<div id="demo"></div>
<script type="text/javascript">
//<![CDATA[
 var xsltParser = function(xmlfileStr, xslfileStr) {
 var retval = xslStylesheet = xmlDocument = null;
 var browser = { 
 isIE:!!window.ActiveXObject, 
 isMozilla:(typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined') 
 };
 var loadDocument = function (fileStr) {
 if (!fileStr) throw new Error([65221, "調(diào)用XMLHTTP錯(cuò)誤,沒有指定文件名。"]);
 var req = browser.isIE?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
 req.open("GET", fileStr, false);
 req.send(null); 
 if (req.readyState==4 && req.status==200) { return req.responseXML; }
 else throw new Error([65222, "調(diào)用XMLHTTP錯(cuò)誤,遠(yuǎn)程文件失敗。"+fileStr+""]);
 }; 
 var ready2Transform = function () {
 xmlDocument = loadDocument(xmlfileStr);
 xslStylesheet = loadDocument(xslfileStr);
 }(); 
 var parseFromMoz = function () {
 var xsltProcessor = new XSLTProcessor();
 xsltProcessor.importStylesheet(xslStylesheet);
 var retval = xsltProcessor.transformToDocument(xmlDocument);
 return (new XMLSerializer()).serializeToString(retval);//序列化
 }; 
 var parseFromIE = function () {
 return xmlDocument.transformNode(xslStylesheet.documentElement);
 }; 
 if (browser.isMozilla) { 
 retval = parseFromMoz(xmlfileStr, xslfileStr); 
 } 
 else if (browser.isIE) { 
 retval = parseFromIE(xmlfileStr, xslfileStr);
 } else { /* TO DO */ ;}; return retval;
 }
 document.getElementById("demo").innerHTML=xsltParser("foo.xml","foo.xsl")
//]]>
</script>
 </body>
</html>

相關(guān)文章

  • js光標(biāo)定位文本框回車表單提交問題的解決方法

    js光標(biāo)定位文本框回車表單提交問題的解決方法

    這篇文章主要介紹了js光標(biāo)定位文本框回車表單提交問題的解決方法,涉及javascript阻止瀏覽器默認(rèn)事件的方法,需要的朋友可以參考下
    2015-05-05
  • 基于JavaScript代碼實(shí)現(xiàn)兼容各瀏覽器的設(shè)為首頁(yè)和加入收藏

    基于JavaScript代碼實(shí)現(xiàn)兼容各瀏覽器的設(shè)為首頁(yè)和加入收藏

    但是由于瀏覽器的兼容性問題,之前用的很多代碼都失去效果,下面就給出一段能夠兼容各個(gè)瀏覽器的代碼,也不能夠算是兼容,只能說在不支持的瀏覽器中能夠給出提示,對(duì)js兼容各個(gè)瀏覽器設(shè)為首頁(yè)加入收藏相關(guān)知識(shí)感興趣的朋友可以參考下本文
    2016-01-01
  • JS原型與繼承操作示例

    JS原型與繼承操作示例

    這篇文章主要介紹了JS原型與繼承操作,涉及javascript面向?qū)ο蟪绦蛟O(shè)計(jì)中原形與繼承的相關(guān)定義、實(shí)例化操作技巧,需要的朋友可以參考下
    2019-05-05
  • javascript框架設(shè)計(jì)之種子模塊

    javascript框架設(shè)計(jì)之種子模塊

    本文給大家介紹的是司徒正美的javascript框架設(shè)計(jì)的第二章種子模塊的相關(guān)內(nèi)容,算是一個(gè)小小的讀后感,小伙伴們可以參考下。
    2015-06-06
  • js實(shí)現(xiàn)交換運(yùn)動(dòng)效果的方法

    js實(shí)現(xiàn)交換運(yùn)動(dòng)效果的方法

    這篇文章主要介紹了js實(shí)現(xiàn)交換運(yùn)動(dòng)效果的方法,涉及javascript操作頁(yè)面元素與相關(guān)樣式實(shí)現(xiàn)交換運(yùn)動(dòng)效果的技巧,需要的朋友可以參考下
    2015-04-04
  • JS實(shí)現(xiàn)右側(cè)懸浮框效果

    JS實(shí)現(xiàn)右側(cè)懸浮框效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)右側(cè)懸浮框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 微信小程序?qū)崿F(xiàn)播放音頻功能

    微信小程序?qū)崿F(xiàn)播放音頻功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)播放音頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 淺談JavaScript的自動(dòng)垃圾收集機(jī)制

    淺談JavaScript的自動(dòng)垃圾收集機(jī)制

    本文主要對(duì)JavaScript的自動(dòng)垃圾收集機(jī)制進(jìn)行簡(jiǎn)要分析,并介紹了垃圾收集的方式:標(biāo)記清除(mark-and-sweep)和引用計(jì)數(shù)(reference counting),需要的朋友一起來看下吧
    2016-12-12
  • JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作示例

    JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作示例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作,涉及javascript基于charCodeAt與fromCharCode的字符串編碼與解碼操作相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • 不間斷循環(huán)滾動(dòng)效果的實(shí)例代碼(必看篇)

    不間斷循環(huán)滾動(dòng)效果的實(shí)例代碼(必看篇)

    下面小編就為大家?guī)硪黄婚g斷循環(huán)滾動(dòng)效果的實(shí)例代碼(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10

最新評(píng)論