动态导航制作(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

用xml和xsl做网页实例

用xml和xsl做网页。直接大家保存两个文件运行即可。 cdcatalog.xml 相当于html cdcatalog.xsl 相当于css cdcatalog.xml cdcatal...
  • it_man
  • it_man
  • 2012年01月19日 10:38
  • 1840

用XSL与XML实现多级树形菜单

XSL语言功能强大而奇妙。从前面的例子中,我们可以初步了解到,一个xsl文档中使用了很多类似"xsl:xxxxx"这样的标签,这些标签就是xsl语言的部分。一个xsl文档至少是由一个模板组成的,xsl...

xsl,xsd,xml制作的类似html的个人简历

个人简历 p,span{font-size:12px;} table,th,td{border:1px ...

XML xsl转换

  • 2017年11月22日 13:43
  • 601KB
  • 下载

XML转换XSL工具

  • 2011年02月27日 22:24
  • 155KB
  • 下载

根据xsl模板及xml数据文件生成pdf(文字内容复制不乱码)

使用FOP技术,配合xsl模板及XML数据生成PDF报表和线上打印业务

XML+XSL-&gt;HTML(transformer)

  • 2006年02月23日 09:05
  • 504KB
  • 下载

【HTML/XML 8】XSL,可扩展样式表语言

导读:上篇博客说了在XML文档中实现表现形式的一种形式:CSS层叠样式表,本篇博客将接着说明其另一种实现方式XSL,并将分析XSL和CSS之间的 关系。 一、XSL简介 二、XSL的编...

XML HTML CSS XSL Web编程实作教程

  • 2007年09月17日 08:37
  • 18.72MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态导航制作(xml+xsl)
举报原因:
原因补充:

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