解析XSL JavaScript+XMLDOM的使用_Xml教程
推薦:解析xml的處理以及其他dom和SAX使兩種主流的選擇,還有JDOM,DOM4J做的不錯(cuò)。 DOM解析器把XML文檔轉(zhuǎn)化為一個(gè)包含其內(nèi)容的樹,并可以對樹進(jìn)行遍歷。用DOM解析模型的優(yōu)點(diǎn)是編程容易,開發(fā)人員只需要調(diào)用建樹的指令,然后利用navigation APIs訪問所需的樹節(jié)點(diǎn)來完成任務(wù)�?梢院苋菀椎�
對于XSL而言,xml節(jié)點(diǎn)下的內(nèi)容只要是配對的<>和</>不影響xml文檔的顯示的,這些都會(huì)被省略,沒有任何樣式意義(即使是html中的tag)。對于xml,xsl最關(guān)鍵的問題是:tag符的匹配問題。
對于xsl的顯示:必須是一個(gè)父節(jié)點(diǎn)下,幾個(gè)平等的子節(jié)點(diǎn)。當(dāng)子節(jié)點(diǎn)們在同一父節(jié)點(diǎn)下多次出現(xiàn)的,這時(shí)要考慮增加一層相同的節(jié)點(diǎn),并且在把原來的節(jié)點(diǎn)按成對出現(xiàn)或獨(dú)自出現(xiàn)的原則放到該層節(jié)點(diǎn)之下。
對于xsl支持xpath層次結(jié)構(gòu),對于用xsl來顯示xml文檔,就要根據(jù)它來"爬樹".(記�。菏�/為根,單/為層,//為樹(//代表整個(gè)文檔,.//以當(dāng)前節(jié)點(diǎn)為根), ..為父,@為屬性,首串為子) 當(dāng)然還可以通過<xsl:apply-templates select="">,<xsl:template match="">來實(shí)現(xiàn)節(jié)點(diǎn)之間的顯示轉(zhuǎn)換;而且template還可以級聯(lián)向下調(diào)用.當(dāng)需要進(jìn)行排序的時(shí)候,<xsl:for-each select="./dk" order-by="chua/jfdjf">...</for-each>這是升序排序,當(dāng)需要降序排序的時(shí)候,在order-by的值前加-即可,即<xsl:for-each select="./dk" order-by="-chua/zi">...</for-each>
當(dāng)在javascript中利用xml和xsl進(jìn)行頁面,顯示時(shí),要注意兩個(gè)問題:
1.javascript頁面緩存,可能會(huì)影響到頁面的顯示�?梢酝ㄆ帘蝚s的方式,而是連接到一個(gè)由jsp/servlet的生成.js文件(并response.setheader("cache-control","on-cache")等.然后在主頁面中用javascript連接到該javascript文件。
即:<script src='sript.jsp' type="jsp/JavaScript"/>即可。
2.對于使用服務(wù)器生成或存在的xml或xsl文件或字符串來顯示頁面時(shí)。必須指定這些文件或字符串讀取和分析的方式為: doc.async=false;//不許異步的讀取數(shù)據(jù)
doc.validateOnParse=false;//不分析有效性
否則會(huì)出現(xiàn)在javascript中出現(xiàn):'完成該操作所需的數(shù)據(jù)還不可使用'的頁面錯(cuò)誤。
用xmlhttp請求時(shí),用.send(doc)方法。例
var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("post","http://59.64.71.16:7001/MagazineResearchStageWeb/MagazineInfoResearch.jsp",false);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-Length",root.length);
xmlhttp.send(root); alert(root);
document.write(xmlhttp.responseText);
注意:不要用.sendXML方法,不支持。而且.send()既可以是xml文檔對象,也可以是字符串。在非框架內(nèi)的html頁面使用XMLHTTP技術(shù)發(fā)送xml時(shí)可能會(huì)出錯(cuò)的,需要調(diào)低安全等級才能使用,這是因?yàn)閤mlhttp的一些比較強(qiáng)的功能,威脅到機(jī)器的安全。像以前的msxml就支持訪問本地文件系統(tǒng)上提交的xml文檔,并上發(fā)送到服務(wù)器。現(xiàn)在就不行。這些只能說明客戶端的處理功能越強(qiáng),安全性就越低。這也是出現(xiàn)客戶安全認(rèn)證簽名的原因之一!
分享:淺析JavaScript與XML XSL的綜合使用1.當(dāng)用xsl來顯示xml內(nèi)容時(shí),要注意在借助xsl文檔來定義樣式時(shí): 在html文檔中有 head base href= http://127.0.0.1:7001/MagazineResearchStageWeb/ 就意味著所引用的xsl等外部文檔必須在href目錄下。否則就不能引用到外部文檔。 2.通過new String來處理xm
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-解析XSL JavaScript+XMLDOM的使用
。