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

XSL语言功能强大而奇妙。从前面的例子中,我们可以初步了解到,一个xsl文档中使用了很多类似"xsl:xxxxx"这样的标签,这些标签就是xsl语言的部分。一个xsl文档至少是由一个模板组成的,xsl的解析引擎会负责将xml数据按xsl的模板定义来转换。就像上面的例子,就有两个模板:

模板可以用来处理特定的xml数据,通过match属性来指定。match属性里的是一个xpath的表达式(xpath在本文先不作讨论),通过它可以匹配相关的xml节点给模板来处理。我们看到在模板中,大部分内容都是html的内容,只有少量的这样的标签,非标签的内容,在xsl引擎解析时,会原文保留。当遇到标签才做处理。像上面的例子中,有一个标签,它是将select属性指定的greeting节点输入到当前位置。通过xml文档我们看到greeting节点值是“Hello, World!”,输出时它正好在html的H1标签当中,所以它当然以大号的黑体字来显示了。

常用的xsl标签有很多,常用到的一般有:

xsl:value-of (选择节点并输出)

xsl:apply-templates (对匹配的节点应用相应的模板)

xsl:template (模板定义)

xsl:if (条件判断)

xsl:choose (多条件分支)

xsl:for-each (循环)

利用这些xsl的标签,我们可以实现一定的‘数据结构+算法’来完成一部分工作,所以我们说,xsl是一种程序语言,关于xsl 更详细的学习,你可以看Microsoft的XML SDK文档,它对xml, xsl甚至xpath的内容讲的非常详细(感谢Microsoft提供这么好的文档)。

下面回到正题,如何用xml/xsl实现一个多级树形菜单。

我来看一下树形菜单的xml文档类型定义:

通过这个定义可以看到,我们的菜单xml结构是由一个tree根结点组成。tree节点可以包含多个menu节点。而每个menu节点也可以包含多个menu节点。这样就达到多级树形结构的要求。下面来看这个xml结构的例子:

menu节点具有5种属性,分别是:

text,用来作为菜单的显示文字

icon,菜单的图标

url, 点击菜单后的地址

target, 显示地址的目标框架

folded, 如果是菜单还有子菜单的话,此属性决定菜单是否折叠。

其中,text属性是必须的,其它的根据需要取舍。

截图:

tree.jpg

down_info.asp?id=24379


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部