日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单

發(fā)布時(shí)間:2024/10/8 108 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

XSL語言功能強(qiáng)大而奇妙。從前面的例子中,我們可以初步了解到,一個(gè)xsl文檔中使用了很多類似"xsl:xxxxx"這樣的標(biāo)簽,這些標(biāo)簽就是xsl語言的部分。一個(gè)xsl文檔至少是由一個(gè)模板組成的,xsl的解析引擎會(huì)負(fù)責(zé)將xml數(shù)據(jù)按xsl的模板定義來轉(zhuǎn)換。就像上面的例子,就有兩個(gè)模板:

模板可以用來處理特定的xml數(shù)據(jù),通過match屬性來指定。match屬性里的是一個(gè)xpath的表達(dá)式(xpath在本文先不作討論),通過它可以匹配相關(guān)的xml節(jié)點(diǎn)給模板來處理。我們看到在模板中,大部分內(nèi)容都是html的內(nèi)容,只有少量的這樣的標(biāo)簽,非標(biāo)簽的內(nèi)容,在xsl引擎解析時(shí),會(huì)原文保留。當(dāng)遇到標(biāo)簽才做處理。像上面的例子中,有一個(gè)標(biāo)簽,它是將select屬性指定的greeting節(jié)點(diǎn)輸入到當(dāng)前位置。通過xml文檔我們看到greeting節(jié)點(diǎn)值是“Hello, World!”,輸出時(shí)它正好在html的H1標(biāo)簽當(dāng)中,所以它當(dāng)然以大號(hào)的黑體字來顯示了。

常用的xsl標(biāo)簽有很多,常用到的一般有:

xsl:value-of (選擇節(jié)點(diǎn)并輸出)

xsl:apply-templates (對(duì)匹配的節(jié)點(diǎn)應(yīng)用相應(yīng)的模板)

xsl:template (模板定義)

xsl:if (條件判斷)

xsl:choose (多條件分支)

xsl:for-each (循環(huán))

利用這些xsl的標(biāo)簽,我們可以實(shí)現(xiàn)一定的‘?dāng)?shù)據(jù)結(jié)構(gòu)+算法’來完成一部分工作,所以我們說,xsl是一種程序語言,關(guān)于xsl 更詳細(xì)的學(xué)習(xí),你可以看Microsoft的XML SDK文檔,它對(duì)xml, xsl甚至xpath的內(nèi)容講的非常詳細(xì)(感謝Microsoft提供這么好的文檔)。

下面回到正題,如何用xml/xsl實(shí)現(xiàn)一個(gè)多級(jí)樹形菜單。

我來看一下樹形菜單的xml文檔類型定義:

通過這個(gè)定義可以看到,我們的菜單xml結(jié)構(gòu)是由一個(gè)tree根結(jié)點(diǎn)組成。tree節(jié)點(diǎn)可以包含多個(gè)menu節(jié)點(diǎn)。而每個(gè)menu節(jié)點(diǎn)也可以包含多個(gè)menu節(jié)點(diǎn)。這樣就達(dá)到多級(jí)樹形結(jié)構(gòu)的要求。下面來看這個(gè)xml結(jié)構(gòu)的例子:

menu節(jié)點(diǎn)具有5種屬性,分別是:

text,用來作為菜單的顯示文字

icon,菜單的圖標(biāo)

url, 點(diǎn)擊菜單后的地址

target, 顯示地址的目標(biāo)框架

folded, 如果是菜單還有子菜單的話,此屬性決定菜單是否折疊。

其中,text屬性是必須的,其它的根據(jù)需要取舍。

截圖:

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。