动态导航制作(xml+xsl)

转载 2004年09月20日 12:20:00
 Feed: 博客园
 Title: 动态导航制作(xml+xsl)
Author: 小春 
0 Comments 

不知道我这个方法算是好呢还是算坏?
不过我感觉这个方法是我目前能写到的最好的一个解决方法了,也是最灵活的一种red_smile.gif
主要采用XML+XSL

tree.xml

None.gif<?xml version="1.0" encoding="gb2312"?>
None.gif
<ct:imagechina xmlns:ct="www.imagechina.com">
None.gif  
<Navigation text="我的影像中国">
None.gif    
<Node href="1">摄影天地</Node>
None.gif    
<Node href="2">发烧友专辑</Node>
None.gif    
<Node href="3">摄友日记</Node>
None.gif  
</Navigation>
None.gif  
<Navigation text="中国摄影家">
None.gif    
<Node href="3">摄影天地</Node>
None.gif    
<Node href="3">摄影天地</Node>
None.gif  
</Navigation>
None.gif  
<Navigation text="影像中国">
None.gif    
<Node href="4">摄影天地</Node>
None.gif  
</Navigation>
None.gif
</ct:imagechina>

tree.xsl
None.gif<?xml version="1.0" encoding="gb2312"?>
None.gif
<xsl:stylesheet
None.gif    
version="1.0"
None.gif    xmlns:xsl
="http://www.w3.org/1999/XSL/Transform"
None.gif    xmlns:ct
="www.imagechina.com">
None.gif
<xsl:param name="NavigationName" select="中国摄影家"></xsl:param>
None.gif
<xsl:template match="ct:imagechina">
None.gif  
<xsl:variable name="day" select="$NavigationName"></xsl:variable>
None.gif  
<xsl:for-each select="Navigation[@text=$NavigationName]/Node">
None.gif     
<href="{@href}"><xsl:value-of select="."/></a><xsl:text disable-output-escaping="yes"><![CDATA[ &nbsp;&nbsp;&nbsp; ]]></xsl:text>
None.gif  
</xsl:for-each>
None.gif
</xsl:template>
None.gif
</xsl:stylesheet>

tree.ascx

None.gifImports System.Xml
None.gif
Imports System.Xml.Xsl
None.gif
Imports System.Xml.XPath
None.gif
Imports System.IO
None.gif
ExpandedBlockStart.gifContractedBlock.gif 
Public Property Sort()Property Sort() As String
InBlock.gif        
Get
InBlock.gif            
Return _sort
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _sort 
= Value
InBlock.gif        
End Set
ExpandedBlockEnd.gif    
End Property

ExpandedBlockStart.gifContractedBlock.gif    
Private Sub Page_Load()Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
InBlock.gif        
'在此处放置初始化页的用户代码
InBlock.gif
        '        Dim xpDocument As XPathDocument = New XPathDocument(HttpRuntime.AppDomainAppPath & "/Navigation/tree.xml")
InBlock.gif

InBlock.gif        
If Cache("navigation"Is Nothing Then
InBlock.gif            
Dim xpDocument As XPathDocument = New XPathDocument(HttpRuntime.AppDomainAppPath & "/Navigation/tree.xml")
InBlock.gif            Cache(
"navigation"= xpDocument
InBlock.gif        
End If
InBlock.gif        
Dim Xsl As XslTransform = New XslTransform
InBlock.gif        Xsl.Load(HttpRuntime.AppDomainAppPath 
& "/Navigation/tree.xsl")
InBlock.gif
InBlock.gif        
Dim xArgList As XsltArgumentList = New XsltArgumentList
InBlock.gif        xArgList.AddParam(
"NavigationName""", Me.Sort)
InBlock.gif
InBlock.gif        
Dim sw As StringWriter = New StringWriter
InBlock.gif        Xsl.Transform(
CType(Cache("navigation"), XPathDocument), xArgList, sw)
InBlock.gif
InBlock.gif        Label1.Text 
= sw.ToString
ExpandedBlockEnd.gif    
End Sub

None.gif
     Dim xArgList As XsltArgumentList = New XsltArgumentList
   xArgList.AddParam(
"NavigationName""", Me.Sort)
主要是传递参数到tree.xsl中,进行对该导航的查找,
None.gif <xsl:for-each select="Navigation[@text=$NavigationName]/Node">
None.gif

扩展:
可以添加字体的颜色<font color=““></<font>,大小等。反正只要是HTML的代码都可以添加进行:)

效果:http://www.imagechina.net/imagechina
menu_1.jpg44783.aspx

浅谈导航电子地图的组成和制作流程

原文:http://rovertang.com/blog/archives/151   声势浩大的Google2009开发者大会早就有所闻,只是像我这样的无名小辈是不敢想象去参加Google开发者...
  • e_wsq
  • e_wsq
  • 2012年06月11日 18:05
  • 2081

Android开发--自定义动态导航栏的实现(很简单)

Android开发–导航栏的实现 最近自己用2周的时间和队友零基础尝试开发了一个简单的安卓应用,自己完成了前端和后台的编写,现在把在开发过程中遇到的知识点整理一下,最开始的是导航栏的实现 设计App...
  • qq_34861102
  • qq_34861102
  • 2017年08月06日 01:52
  • 1805

利用HTML5的本地存储制作的个性化导航页

本人做了一个HTML5页面,用于管理自己经常访问的网站。 数据使用HTML5的localStorage存储。下面是完整的页面代码。 a{margin:15px;font-size:28px;}...
  • tiana0
  • tiana0
  • 2016年10月18日 12:42
  • 825

[Axure]导航栏的制作:使用Axure制作面包屑导航栏

导航栏在网页设计中很常见,主要用于引导网站访问者浏览,也可以清晰地告诉搜索引擎网站内部目录所在。 面包屑导航栏就是类似于这样的导航栏: 主页 > 博客 > 移动专栏 > 发表博文 大致有...
  • wxg694175346
  • wxg694175346
  • 2013年01月31日 15:51
  • 6803

动态操作XML+XSL 生成HTML

====================================================== 注:本文源代码点此下载 =============================...
  • javazhuanzai
  • javazhuanzai
  • 2012年02月01日 06:03
  • 210

采用XML+XSL样式表制作报表

采用XML+XSL样式表制作报表 一、问题的产生:在项目中,需要对一些交易和业务查询结果制作报表,最初的方法是制作了专门的打印报表类来专门制作报表,但问题是报表的设计需要使用画图技术来制作表格,而画图...
  • isadream
  • isadream
  • 2007年12月10日 09:45
  • 3228

【CSS3】---练习制作导航菜单

练习题 根据所学知识,使用CSS3实现下图的导航菜单效果 任务 1、制作导航圆角 提示:使用border-radius实现圆角 2、制作导航立体风格 提示:使用box-shad...
  • xuan0107
  • xuan0107
  • 2015年06月04日 14:21
  • 498

python将xml+xsl转换成PDF的方法

这几天一直在找从xml+xsl转换成PDF文档的方案,最好是用python实现的,找了好多国外的网站,最终还是在csdn上找到了,看来还是自家兄弟靠谱啊,在此谢谢wyuan8913了:-): 转换过...
  • nolove
  • nolove
  • 2012年04月11日 16:52
  • 1289

angularjs路由实现导航栏

angularjs路由实现导航栏 第一种: 路由 a{ text-decoration:none; } 首页 公司简...
  • b1244154318
  • b1244154318
  • 2016年09月27日 22:14
  • 2673

记录一个JAVA初学者的导航站

www.hackday.cn 1、适合java初学者入门,集中了入门所需的一些资料。 2、熟手可以找到一些常用资料和工具的连接,有一定收藏价值。...
  • yethyeth
  • yethyeth
  • 2017年03月05日 23:10
  • 368
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态导航制作(xml+xsl)
举报原因:
原因补充:

(最多只允许输入30个字)