5.運(yùn)行工程,看看效果吧!
hello.xml(注意:我的xml文檔中并沒有指定對(duì)應(yīng)的xsl解析文件名)
<?xml version='1.0'?>
<breakfast-menu> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description>Two of our famous Belgian Waffles with plenty of real maple syrup.</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description>Light Belgian waffles covered with strawberries and whipped cream.</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream.</description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>$4.50</price> <description>Thick slices made from our homemade sourdough bread.</description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns.</description> <calories>950</calories> </food> </breakfast-menu>
hello.xsl
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/breakfast-menu">
<xsl:for-each select="food"> <DIV STYLE="background-color:teal; color:white; padding:4px"> <SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="name"/></SPAN> 至 <xsl:value-of select="price"/> </DIV> <DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt"> <xsl:value-of select="description"/> <SPAN STYLE="font-style:italic"> <xsl:value-of select="calories"/> 嘿嘿 </SPAN> </DIV> </xsl:for-each>
</xsl:template> </xsl:stylesheet>
xml文檔只有純粹的數(shù)據(jù),如果需要顯示到html頁面中的話,一般需要使用定制的xsl文檔來解析,或者手工通過js來讀取xml中的值顯示到html中的dom樹中,當(dāng)使用xsl文檔來解析時(shí),相應(yīng)的xml文檔中必須指定對(duì)應(yīng)的xsl文檔才能正常顯示,但當(dāng)有些程序動(dòng)態(tài)輸出xml文檔時(shí),并沒有指定相應(yīng)的xsl文檔,這時(shí)就必須通過其它途徑來加載相應(yīng)的xsl文檔來解析,當(dāng)然,在服務(wù)器端輸出xml文檔時(shí),通過一些xml api也可以實(shí)現(xiàn),我這兒描述的是通過js來實(shí)現(xiàn)的一種方式。用這種方式的話,就拋開了服務(wù)器平臺(tái)的限制,服務(wù)器端只需要輸出相應(yīng)的xml文檔(.net/j2ee都可以),并且將對(duì)應(yīng)的xsl文檔輸出給客戶端(可以輸出流或直接在客戶端加載xsl文檔)。
這里有幾個(gè)需要注意的地方,我們一般是使用Msxml2.Document組件來加載xml文檔的,但當(dāng)動(dòng)態(tài)使用xsl解析xml文檔時(shí),必須使用Msxml2.FreeThreadedDOMDocument這種自由線程的組件,同時(shí)使用MSXML2.XSLTemplate模板組件來加載xml,xsl數(shù)據(jù),通過MSXML2.XSLTemplate的transform方法,就可以動(dòng)態(tài)的用xsl來解析xml數(shù)據(jù)了,另外,IE5開始,系統(tǒng)默認(rèn)的xml組件是msxml2,如果需要使用更新的msxml組件需要安裝更新的msxml組件包,并指定新的名稱,例如Msxml2.FreeThreadedDOMDocument.4.0,現(xiàn)在最新的msxml組件是6.0beta,可在M$網(wǎng)站下載。
演示實(shí)例下載:XMLTest.zip
經(jīng)典論壇討論: http://bbs.blueidea.com/viewthread.php?tid=2662863
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 調(diào)用xsl來解析xml文檔 [1] 下一頁
◎進(jìn)入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|