1、xml数据格式(数据动态生成):

1导航组件实现:XML+XSLT+jQuery Accordion<?xml version="1.0" encoding="utf-8" ?>
2导航组件实现:XML+XSLT+jQuery Accordion<menu>
3导航组件实现:XML+XSLT+jQuery Accordion  <item text="Menu1" url="../default.aspx"/>
4导航组件实现:XML+XSLT+jQuery Accordion  <item text="Menu2" url="#">
5导航组件实现:XML+XSLT+jQuery Accordion    <subitem text="Menu21" url="http://www.baidu.com"/>
6导航组件实现:XML+XSLT+jQuery Accordion    <subitem text="Menu22" url="http://www.eric.com"/>
7导航组件实现:XML+XSLT+jQuery Accordion  </item>
8导航组件实现:XML+XSLT+jQuery Accordion</menu>

2、XSL文件内容:

 1导航组件实现:XML+XSLT+jQuery Accordion<?xml version="1.0" encoding="utf-8"?>
 2导航组件实现:XML+XSLT+jQuery Accordion<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 3导航组件实现:XML+XSLT+jQuery Accordion    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
 4导航组件实现:XML+XSLT+jQuery Accordion    <xsl:output method="html" encoding="utf-8" indent="yes"/>
 5导航组件实现:XML+XSLT+jQuery Accordion    <xsl:template match="/">
 6导航组件实现:XML+XSLT+jQuery Accordion      <ul id="navigation" class="menu collapsible">
 7导航组件实现:XML+XSLT+jQuery Accordion        <xsl:for-each select="//menu/item">
 8导航组件实现:XML+XSLT+jQuery Accordion          <li>
 9导航组件实现:XML+XSLT+jQuery Accordion            <class="head" target="rightmain">
10导航组件实现:XML+XSLT+jQuery Accordion              <xsl:attribute name="href">
11导航组件实现:XML+XSLT+jQuery Accordion                <xsl:value-of select="@url"/>
12导航组件实现:XML+XSLT+jQuery Accordion              </xsl:attribute>
13导航组件实现:XML+XSLT+jQuery Accordion              <xsl:value-of select="@text"/>
14导航组件实现:XML+XSLT+jQuery Accordion            </a>
15导航组件实现:XML+XSLT+jQuery Accordion            <xsl:variable name="subItems" select="subitem"/>
16导航组件实现:XML+XSLT+jQuery Accordion            <xsl:if test="count($subItems) &gt; 0">
17导航组件实现:XML+XSLT+jQuery Accordion              <ul style="display:none;">
18导航组件实现:XML+XSLT+jQuery Accordion              <xsl:for-each select="subitem">
19导航组件实现:XML+XSLT+jQuery Accordion                  <li>
20导航组件实现:XML+XSLT+jQuery Accordion                    <target="rightmain">
21导航组件实现:XML+XSLT+jQuery Accordion                      <xsl:attribute name="href">
22导航组件实现:XML+XSLT+jQuery Accordion                        <xsl:value-of select="@url"/>
23导航组件实现:XML+XSLT+jQuery Accordion                      </xsl:attribute>
24导航组件实现:XML+XSLT+jQuery Accordion                      <xsl:value-of select="@text"/>
25导航组件实现:XML+XSLT+jQuery Accordion                    </a>
26导航组件实现:XML+XSLT+jQuery Accordion                  </li>                
27导航组件实现:XML+XSLT+jQuery Accordion              </xsl:for-each>
28导航组件实现:XML+XSLT+jQuery Accordion              </ul>
29导航组件实现:XML+XSLT+jQuery Accordion            </xsl:if>
30导航组件实现:XML+XSLT+jQuery Accordion          </li>
31导航组件实现:XML+XSLT+jQuery Accordion        </xsl:for-each>        
32导航组件实现:XML+XSLT+jQuery Accordion      </ul>
33导航组件实现:XML+XSLT+jQuery Accordion    </xsl:template>
34导航组件实现:XML+XSLT+jQuery Accordion</xsl:stylesheet>
35导航组件实现:XML+XSLT+jQuery Accordion

3、目标html代码,为jQuery Accordion的js所用(可以使用上文中提及的jQuery组件):

1导航组件实现:XML+XSLT+jQuery Accordion<ul id="navigation" class="menu collapsible">
2导航组件实现:XML+XSLT+jQuery Accordion  <li><class="head" target="rightmain" href="../default.aspx">Menu1</a></li>
3导航组件实现:XML+XSLT+jQuery Accordion  <li><class="head" target="rightmain" href="#">Menu2</a>
4导航组件实现:XML+XSLT+jQuery Accordion    <ul style="display:none;">
5导航组件实现:XML+XSLT+jQuery Accordion      <li><target="rightmain" href="http://www.baidu.com">Menu21</a></li>
6导航组件实现:XML+XSLT+jQuery Accordion      <li><target="rightmain" href="http://www.eric.com">Menu22</a></li>
7导航组件实现:XML+XSLT+jQuery Accordion    </ul>
8导航组件实现:XML+XSLT+jQuery Accordion  </li>
9导航组件实现:XML+XSLT+jQuery Accordion</ul>

4、用于生成menu的c#代码(其他语言的代码类似):

 1导航组件实现:XML+XSLT+jQuery Accordion        XslCompiledTransform xsl = new XslCompiledTransform();
 2导航组件实现:XML+XSLT+jQuery Accordion        xsl.Load(xslPath);
 3导航组件实现:XML+XSLT+jQuery Accordion        MemoryStream msIn = new MemoryStream(Encoding.UTF8.GetBytes(strXML));
 4导航组件实现:XML+XSLT+jQuery Accordion        MemoryStream msOut = new MemoryStream();
 5导航组件实现:XML+XSLT+jQuery Accordion        msIn.Position = 0;
 6导航组件实现:XML+XSLT+jQuery Accordion        XmlTextReader trInput = new XmlTextReader(msIn);
 7导航组件实现:XML+XSLT+jQuery Accordion        XmlWriter twOutput = XmlWriter.Create(msOut, xsl.OutputSettings);
 8导航组件实现:XML+XSLT+jQuery Accordion        xsl.Transform(trInput, twOutput);
 9导航组件实现:XML+XSLT+jQuery Accordion        trInput.Close();
10导航组件实现:XML+XSLT+jQuery Accordion        msIn.Close();
11导航组件实现:XML+XSLT+jQuery Accordion        msOut.Position = 0;
12导航组件实现:XML+XSLT+jQuery Accordion        StreamReader sr = new StreamReader(msOut);
13导航组件实现:XML+XSLT+jQuery Accordion        String xmlStr = String.Format("{0}", sr.ReadToEnd());
14导航组件实现:XML+XSLT+jQuery Accordion        msOut.Close();
15导航组件实现:XML+XSLT+jQuery Accordion        sr.Close();
16导航组件实现:XML+XSLT+jQuery Accordion        return xmlStr;

可以不用复杂的服务端NavBar的实现了,简单动态的导航组件就实现了,简易的状态还是可以维护的,
复杂的应用场景可能得令作些工作了.




相关文章:

  • 2021-05-10
  • 2022-02-21
  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
  • 2021-11-28
  • 2021-08-16
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2021-05-23
  • 2022-12-23
  • 2022-03-05
  • 2021-11-29
相关资源
相似解决方案