XSLT与XML的应用,属性循环

本文介绍了一个使用XSLT来转换XML数据的具体案例,包括XML数据结构和对应的XSLT样式表代码,展示了如何通过XSLT选择和呈现XML内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML数据:
1 <NewDataSet>
2 <theID>$theID</theID>
3        <tree href="/" style="border:1px">首 页</tree>
4        <tree href="/view.aspx">旅游景点</tree>
5         <tree href="/City.aspx">城市信息</tree>
6        <tree href="/line.aspx">旅游线路</tree>
7         <tree>旅游专题</tree>
8 </NewDataSet>

XSLT源码:
 1 <?xml version="1.0" encoding="utf-8"?><!-- DWXMLSource="topMenu.xml" -->
 2 <xsl:stylesheet version="1.0"
 3     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xy" xmlns:xy="xytag">
 4     <xsl:param name="theID" select="NewDataSet/theID"/>
 5     <xsl:template match="/">
 6     <div class="menu">
 7     <span class="menu1"><img src="skin/images/menu1.jpg" /></span>
 8             <xsl:for-each select="NewDataSet/tree">
 9                 <xsl:choose>
10                     <xsl:when test="position()!=1">
11                     <span class="menu3"><img src="/skin/images/menu4.jpg" /></span>
12                     </xsl:when>
13                 </xsl:choose>
14                 <span>
15                     <xsl:choose>
16                         <xsl:when test="position()=$theID">
17                             <xsl:attribute name="class">menu22</xsl:attribute>
18                         </xsl:when>
19                         <xsl:otherwise>
20                             <xsl:attribute name="class">menu2</xsl:attribute>
21                             <xsl:attribute name="onmouseover">this.className='menu22'</xsl:attribute>
22                             <xsl:attribute name="onmouseout">this.className='menu2'</xsl:attribute>
23                         </xsl:otherwise>
24                     </xsl:choose>
25 
26                                 <a>
27                                     <xsl:attribute name="href">
28                                         <xsl:value-of select="@href"/>
29                                     </xsl:attribute>
30                                     <xsl:attribute name="title">
31                                         <xsl:value-of select="."/>
32                                     </xsl:attribute>
33                                     <xsl:for-each select="@*">
34                                      <xsl:if test="name() != 'href' and name() != 'title'">
35                                      <xsl:attribute name="{name()}">
36                                             <xsl:value-of select="."/>
37                                         </xsl:attribute>
38                                         </xsl:if>
39                                     </xsl:for-each>
40                                     <xsl:value-of select="."/>
41                                 </a>
42                 </span>
43             </xsl:for-each>
44       <span class="menu4"></span>
45       <span class="menu5"><img src="/skin/images/menu3.jpg" /></span>
46       </div>
47     </xsl:template>
48 </xsl:stylesheet>
49 

转载于:https://www.cnblogs.com/xy109/articles/1561777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值