成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)

一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)

熱門標簽:微信地圖標注合并了 高德地圖地圖標注服務中心 東營電銷 400電話辦理包年 r語言數(shù)據(jù)可視化地圖標注 隨州外呼調研系統(tǒng) 本地電話機器人 如何修改多個百度地圖標注 南寧網絡外呼系統(tǒng)運營商
由于前面的方法xslt需要在xml文件內部直接導入,而項目中用到的xml文件是系統(tǒng)生成的,只能提供路徑,而沒有辦法改寫xml里面的內容,所以需要找一個方法能夠在外部將xml和xslt關聯(lián)在一起,這樣既達到了目的,也可以應用于多個xml文件,方便管理。
先上代碼,系統(tǒng)中使用module這個js進行打包,module這個工具是專門用來將js進行打包,這個工具以后的文章再做介紹,我自己現(xiàn)在只會使用,還沒研究其底層的代碼;這邊我們將js寫在一個文件里面,包括類以及類實現(xiàn)的方法,
下面是js代碼:transform.js
復制代碼 代碼如下:

var XmlDom=function(){
if (window.ActiveXObject) { // IE
var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
"Microsoft.XmlDom"];
for (var i=0; i arrSignatures.length; i++) {
try {
var oXmlDom = new ActiveXObject(arrSignatures[i]);
return oXmlDom;
} catch (oError) {
//ignore
}
}
throw new Error("你的系統(tǒng)沒有安裝 MSXML.");
} else if(document.implementation.createDocument){ // Firefox
var oXmlDom = document.implementation.createDocument("", "", null);
return oXmlDom;
} else{
throw new Error("瀏覽器不支持 XML DOM object.");
}
}
var transformXSLT=function(_XML,_XSL) {
if (window.Node) {
Node.prototype.transformNode = function(XslDom) {
var oProcessor = new XSLTProcessor();
oProcessor.importStylesheet(XslDom);
var oResultDom = oProcessor.transformToDocument(myXmlDom);
var oSerializer = new XMLSerializer();
var sXml = oSerializer.serializeToString(oResultDom, "text/xml");
return sXml;
}
}
var myXmlDom = new XmlDom();
myXmlDom.async=false;
var myXslDom = new XmlDom();
myXslDom.async=false;
myXmlDom.load(_XML);
myXslDom.load(_XSL);
var sResult=myXmlDom.transformNode(myXslDom);
if(window.ActiveXObject){
if(myXmlDom.parseError.errorCode != 0){
var sError=myXmlDom.parseError;
var txt = "";
txt += "br>錯誤代碼: ";
txt += sError.errorCode;
txt += "br>錯誤原因: ";
txt += sError.reason;
txt += "br>錯誤行號: ";
txt += sError.line;
document.write(txt);
}else{
document.write(sResult);
}
} else if(document.implementation.createDocument){
var oSerializer = new XMLSerializer();
var sXmlDom = oSerializer.serializeToString(myXmlDom, "text/xml");
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(sXmlDom,"text/xml");
if (oXmlDom.documentElement.tagName == "parsererror") {
var oXmlSerializer = new XMLSerializer();
var sXmlError = oXmlSerializer.serializeToString(oXmlDom);
alert(sXmlError);
} else {
document.write(sResult);
}
}
}
var TransformBinder = function(XML,XSL) {
this.XML = XML;
this.XSL = XSL;
}
TransformBinder.prototype.registerAction = function(handlers) {
this.handlers = handlers;
}
TransformBinder.prototype.bind = function() {
var _this = this;
this.handlers(_this.XML,_this.XSL);
}

下面是html代碼:XSLTtransform.htm
復制代碼 代碼如下:

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
html>
head>
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
script type='text/javascript' src="transform.js">/script>
/head>
body>
script type="text/javascript">
var XML = "這里輸入XML路徑";
var XSL = "這里輸入XSL路徑";
var tempObj = new TransformBinder(XML,XSL);
tempObj.registerAction(transformXSLT);
tempObj.bind();
/script>
/body>
/html>

分析一下transform.js:
xmlDom這個構造函數(shù)是用來創(chuàng)建xml的dom元素,對于IE和FF,創(chuàng)建dom的方法不一樣,IE是用window.ActiveXObject這個方法來創(chuàng)建,而FF用document.implementation.createDocument這個方法來創(chuàng)建,我們用這兩個屬性來判斷是IE還是FF。
IE下針對不同版本的xml["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument","Microsoft.XmlDom"],用for循環(huán)進行遍歷查找到對應的版本再new ActiveXObject(arrSignatures[i])建立dom;
FF下用document.implementation.createDocument("", "", null);直接創(chuàng)建dom ;
如果瀏覽器不支持 XML DOM object則throw錯誤 。
transformXSLT這個構造函數(shù)用XSLT將xml轉換成html,F(xiàn)F下沒有transformNode這個方法,所以我們自己構造了一個方法,
復制代碼 代碼如下:

Node.prototype.transformNode = function(XslDom) {
var oProcessor = new XSLTProcessor();
oProcessor.importStylesheet(XslDom);
var oResultDom = oProcessor.transformToDocument(myXmlDom);
var oSerializer = new XMLSerializer();
var sXml = oSerializer.serializeToString(oResultDom, "text/xml");
return sXml;
}

然后用這個方法實現(xiàn)轉換,在處理錯誤上IE和FF又有不同的處理方法,IE比較簡單,有一個parseError屬性裝載錯誤信息,errorCode是錯誤的代碼,reason是錯誤原因,line是錯誤的行號,還有其他一些信息,這里只要顯示主要的錯誤信息就可以了,如果出錯了就顯示出錯內容,如果沒有出錯則顯示轉換的結果sResult。FF下就比較復雜一點,用XMLSerializer和XMLSerializer.serializeToString()將xmlDom轉換為字符串,再將字符串轉換成dom對象,在轉換的過程中如果報錯,就能得到包含有parsererror的信息,判斷得到的字符串的tagName是不是parsererror,如果是則將dom對象再轉換成字符串拋出字符串中的內容,如果不是則顯示轉換的結果sResult。
這里有幾個注意點:
a.IE能檢驗出XML的DTD錯誤,而FF下只能檢驗出XML本身的語法錯誤;
b.因為需要在瀏覽器下判斷錯誤,最終的結果不好合并,可能代碼結構上看起來不太合理,這也是無奈之舉。
用TransformBinder這個類進行封裝,便于擴展和修改。TransformBinder.prototype.registerAction這個原型用于注冊事件,再用TransformBinder.prototype.bind將事件進行綁定,需要使用這個類的時候,只需要new TransformBinder(XML,XSL),注冊transformXSLT事件,再bind進行綁定,這樣就實現(xiàn)這個效果了。如果需要擴展,再創(chuàng)建新的構造函數(shù),注冊并綁定到這個類上就可以實現(xiàn)效果。
您可能感興趣的文章:
  • python使用xslt提取網頁數(shù)據(jù)的方法
  • 使用Python下的XSLT API進行web開發(fā)的簡單教程
  • 用xslt將xml解析成xhtml的代碼
  • XSLT輕松入門第二章:XSLT的實例
  • python提取字典key列表的方法
  • Python實現(xiàn)從url中提取域名的幾種方法
  • python利用正則表達式提取字符串
  • python使用正則表達式提取網頁URL的方法
  • Python進行數(shù)據(jù)提取的方法總結
  • 1分鐘快速生成用于網頁內容提取的xslt

標簽:果洛 拉薩 宿遷 西雙版納 寧夏 益陽 黃石 德州

巨人網絡通訊聲明:本文標題《一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)》,本文關鍵詞  一個,用,xslt,樣式,將,xml,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)》相關的同類信息!
  • 本頁收集關于一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)的相關信息資訊供網民參考!
  • 推薦文章
    丰满诱人av在线播放| 美女在线观看视频一区二区| 国产亚洲精品资源在线26u| 亚洲av成人精品一区二区三区| 欧美va亚洲va日韩∨a综合色| 青青草原综合久久大伊人精品优势| 樱花在线免费观看| 日本成熟性欧美| 国产亚洲精彩久久| 一本色道久久加勒比精品| 日韩电影毛片| 风间由美中文字幕在线看视频国产欧美| 日韩大胆成人| 国产视频1区2区3区| 无码日韩精品一区二区| 四虎电影院在线观看| 日本精品福利视频| 欧美亚洲色图视频| 亚洲国产高清福利视频| 亚洲国产精品日韩专区av有中文| 82av视频| 91精品在线观看视频| 一级片在线免费看| 欧美一级大黄| 91免费看片在线| 国产精品永久免费在线| 国产欧美日韩另类| 国精产品一区一区三区免费视频| 中文av资源| 超碰在线国产97| 日本特级黄色片| 高清欧美精品xxxxx| 久草热视频在线观看| 日本免费看黄| 日韩欧美国产一区二区| 国产色视频一区| 在线观看色视频| a√资源在线| 欧美人与性动xxxx| 久久这里只有精品视频首页| 狠狠色噜噜狠狠狠狠色吗综合| 欧洲免费在线视频| 成人做爰66片免费看网站| 伊人影院在线观看| 亚洲国产综合色| 成人全视频在线观看在线播放高清| 热久久最新网址| 成人精品一区二区三区电影黑人| 国产酒店精品激情| 污污的网站18| 日韩午夜视频在线| 亚洲一二三区精品| 国产精品久久久久久9999| 亚洲激情小视频| 亚洲图片都市激情| 国产精品毛片久久久久久久| 北条麻妃视频在线| 99精品视频在线观看免费播放| 国产精品久久久久av福利动漫| 久久精品视频在线看| 精品综合久久| 那种视频在线观看| 亚洲在线一区二区| 免费电影一区二区三区| 国产精品天天狠天天看| 中文字幕 视频一区| 李丽珍裸体午夜理伦片| 最近中文字幕免费mv| 波波电影院一区二区三区| 国产成人av在线影院| 亚洲国产剧情在线观看| 欧美成人乱码一二三四区免费| 一区二区三区在线影院| 欧美一区,二区| 奇米亚洲午夜久久精品| 综合自拍亚洲综合图不卡区| 久久人体av| 欧美黄色一级生活片| 伊人久久大香线蕉精品| 国产精品熟女一区二区不卡| 欧美在线观看一区二区三区| 国产精品人妻一区二区三区| 久久精品人妻一区二区三区| 不卡一本毛片| а√最新版在线天堂| 久久久久久久片| 一区二区三国产精华液| 黄色免费一级视频| 欧美激情 国产精品| 香蕉乱码成人久久天堂爱免费| 强制高潮抽搐sm调教高h| 99riav国产精品视频| 日韩精品一区二区在线| 中文字幕一区二区三区在线乱码| 亚洲人成电影网| 黄色片一区二区三区| 免费在线黄网站| 国产日韩欧美在线看| 国产女人18毛片水18精| 自拍偷拍精品| 97久久久精品综合88久久| 91色在线播放| 中文字幕国产传媒| 亚洲小说欧美另类激情| 五月天婷婷激情| 久久艹这里只有精品| 亚洲一区一卡| 免费观看一级一片| 久久人人爽人人人人片| 147欧美人体大胆444| 久久se这里有精品| 亚洲av综合一区二区| 国产精品88久久久久久| 精品无码m3u8在线观看| 久久精品国产亚洲AV无码男同| 欧美videos粗暴| 久热精品视频在线观看| 国产免费黄色片| 久久久久久久国产精品| 国产日韩亚洲欧美综合| 94色蜜桃网一区二区三区| 5566中文字幕一区二区电影| 亚洲欧美综合网| 1024精品视频| 91色.com| 日本天堂网在线观看| 亚洲成a人片在线观看中文| 亚洲一区二区自拍偷拍| 国产麻豆视频网站| 蜜桃视频久久一区免费观看入口| 在线免费观看的av| 日韩av午夜在线观看| 国产一区二区自拍视频| 国产在线网站| 亚洲影院久久精品| 麻豆精品视频在线观看| 丝袜美腿诱惑一区二区三区| 日韩专区中文字幕一区二区| 久久一二三国产| 亚洲免费在线视频一区 二区| 欧美中文字幕一区二区三区| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美激情啊啊啊| 天天碰夜夜操| 久久中文亚洲字幕| 波多野结衣在线网站| 九色91蝌蚪在线| 国产又粗又长又爽| 国产精品夜色7777狼人| 国产精品国产对白熟妇| 国产黄色网址在线观看| 二区三区不卡| 欧美一区二区三区成人精品| 国产综合色激情| 国产精品综合一区二区三区| 日韩欧美电影一区二区| 国产精品乱码视频| 日本另类视频| chien国产乱露脸对白| 亚洲一区久久久| 精品国产区在线| 在线观看亚洲国产| 日韩av网站免费在线| 国产精品97在线| 中文字幕资源网在线观看| 欧美88888| 亚洲欧美在线磁力| 成人免费av资源| 99ri日韩精品视频| 蜜臀久久精品久久久久| 日韩高清一二三区| 夜夜躁日日躁狠狠久久88av| 国产盗摄精品一区二区三区在线| 久久人人爽人人爽人人片av高清| 亚洲婷婷综合色高清在线| 日韩欧美电影一二三| 疯狂做受xxxⅹ高潮视频免费| 色老头久久综合| 久草网视频在线观看| 亚洲色偷偷综合亚洲av伊人| 日本在线视频不卡| 久久人妻无码一区二区| 在线观看三级网站| 国产精品v欧美精品v日韩| 二人午夜免费观看在线视频| 亚洲精品一线二线三线| 最近免费中文字幕大全免费版视频| 日韩福利在线观看| 6080yy午夜一二三区久久| 国产精品综合久久久久久| 欧美在线免费观看视频| sm在线播放| 一区二区国产在线观看| 原纱央莉成人av片| 久久久久九九精品影院| 日韩—二三区免费观看av| zzijzzij亚洲日本成熟少妇| 国内精品不卡在线| 在线观看91精品国产入口| 亚洲人成网站999久久久综合| 中文字幕欧美日韩在线| 成人狠狠色综合| 亚洲欧洲中文| 性史性dvd影片农村毛片| 国产黄色片网站| 伊人情人网综合| 亚洲宅男天堂在线观看无病毒| 日韩va在线观看| 国产精品亚洲综合久久| 69国产精品视频| 亚洲国产精品嫩草影院久久av| 美女性感视频久久| 天天操天天操天天操| 欧美视频日韩| 欧美性猛交xxx乱大交3蜜桃| 亚洲一区二区在线观| 欧美日韩免费一区二区三区视频| 日本五十路女优| 国产一区再线| 日韩精品123区| 97超碰蝌蚪网人人做人人爽| 五月天丁香激情| 爱啪导航一精品导航站| 窝窝九色成人影院| 国产美女av| 国产在线观看不卡一区二区三区| 国产一区二区三区四区尤物| 在线电影一区二区| 亚洲高清在线免费| 国产对白叫床清晰在线播放| 狠狠色噜噜狠狠狠8888米奇| 成人影院免费观看| 亚洲精品乱码久久久久久金桔影视| 九色porny自拍视频在线播放| 欧美男男gaytwinkfreevideos| 精品入口麻豆传煤| 九九综合九九| 羞羞的视频在线看| 伪装者在线观看完整版免费| 久久偷看各类女兵18女厕嘘嘘| 91国偷自产中文字幕久久| 中文字幕乱码日本亚洲一区二区| 国产免费a∨片在线观看不卡| 久久午夜a级毛片| 亚洲激精日韩激精欧美精品| 欧美日韩在线精品| 国产精品久久久久久久浪潮网站| 国产精品一区二区三区精品| wwwwww在线观看| 麻豆久久一区二区| 一区二区三区亚洲视频| 亚洲国产精品资源| 成人深夜直播免费观看| 欧美另类一区二区| 久久se这里有精品| 秋霞午夜一区二区| 性xxxfreexxxx性欧美| 精品久久久99| 国内成人自拍视频| 婷婷综合久久中文字幕蜜桃三电影| 中文字幕日本最新乱码视频| 久久久久久av无码免费看大片| 97碰碰碰免费色视频| 国产精品久久亚洲| 精品欧美一区二区久久久久| 亚洲黄色在线播放| 成年女人免费又黄又爽视频| 你懂的在线观看视频| 欧美日韩一级在线| 中文字幕无码毛片免费看| 亚洲精品中文字幕乱码三区| 91极品在线| 国产精品蜜月aⅴ在线| 91久久大香伊蕉在人线| 亚洲影院一区二区三区| 国产福利免费观看| 国产视频xxx| 精品剧情在线观看| 波多野结衣的一区二区三区| 999在线免费观看视频| 综合久久av| 午夜久久av| 九色蝌蚪av新入口| 欧美一级片免费| 三年片观看免费观看大全视频下载| 天天射—综合中文网| 国产精品夫妻激情| 色综合一区二区日本韩国亚洲| 青青青手机在线视频观看| 中文字幕视频观看| 日韩精品一区二区三区高清免费| 日韩成人在线视频网站| 国产精品视频免费一区二区三区| 逼特逼视频在线| 欧美三级免费看| 欧美在线视频网站| 欧美久久高跟鞋激| 久久久黄色大片| 亚洲人成7777| 午夜不卡在线视频| 国产精品视频一二三区| 日韩在线播放视频| 中文亚洲字幕| 欧美日韩大片在线观看| 先锋影音一区二区三区| 国产精品人妖ts系列视频| 夜夜嗨av一区二区三区| 国产精品啪视频| 亚洲国产一区二区三区在线播放| 制服丝袜亚洲网站| 国产在线视频在线观看| 成人毛片在线观看| 你懂的网站在线| 18网站在线观看| 亚洲最大av在线| 久草综合在线视频| ㊣最新国产の精品bt伙计久久| 亚洲一区欧美激情| 国产精选一区二区| 91在线你懂得| 欧日韩一区二区三区| 韩国日本一区二区三区| 欧美影片第一页| 国产黄色在线观看| 在线国产伦理一区| 日韩男人的天堂| 亚洲国产日韩a在线播放| 色综合视频在线观看|