xsl解析xml后的超链接属性为何没有起到作用?
本人在利用xsl解析xml数据时,加入超链接属性,结果结果看到超链接属性没有起作用,但属性确实解析成功了。
样式表如下:
重点看<li>中的<a>。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="MenuKind" select="0" />
<xsl:template match="//Menus">
<div id="menu">
<ul>
<li id="leftGif"></li>
<xsl:for-each select="/Menus/menu[@ParentMenuId=0]">
<li>
<a>
<xsl:attribute name="herf"><xsl:value-of select="@MenuHerf"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="@MenuHint"/></xsl:attribute>
<xsl:value-of select="@MenuTitle"></xsl:value-of>
</a>
</li>
<li id="centerGif"></li>
</xsl:for-each>
<li id="rightGif"></li>
</ul>
</div>
</xsl:template>
</xsl:stylesheet>
经过上面解析后,
得到的部分对应的html代码为:
<div>
<ul>
<li><a here="#" title="aa">hehe</a>
</li>
</ul>
</div>
但是页面上的hehe没有超链接。
请各位大侠指点。
问题点数:20、回复次数:9Top
1 楼skyhaha(内存严重不足)回复于 2006-03-02 14:58:03 得分 0
xml内容写出来看看撒Top
2 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2006-03-02 19:01:05 得分 0
没有xml,啥也看不出来。Top
3 楼zouzou888888(zou)回复于 2006-03-06 14:55:21 得分 0
xml部分内容
<?xml version="1.0" encoding="gb2312"?>
<!--DOCTYPE Navi SYSTEM "NAVIGATOR.dtd"-->
<?xml-stylesheet type="text/xsl" href="Nav.xsl"?>
<Menus>
<menu ID='0' MenuType='1' MenuTitle='Index' ParentMenuId='0' MenuHerf='#' MenuImg='' MenuHint='Index'/>
<menu ID='1' MenuType='1' MenuTitle='News' ParentMenuId='0' MenuHerf='#' MenuImg='' MenuHint='News'/>
</Menus>Top
4 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2006-03-06 15:06:16 得分 0
给换成一个真实地链接呢?Top
5 楼zouzou888888(zou)回复于 2006-03-06 19:19:15 得分 0
换成真实的连接也不行。。。
请各位大侠急救。。。Top
6 楼cds27(http://blog.csdn.net/cds27/)回复于 2006-03-07 17:54:42 得分 15
属性写错了。
下面代码中:
<a>
<xsl:attribute name="herf"><xsl:value-of select="@MenuHerf"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="@MenuHint"/></xsl:attribute>
<xsl:value-of select="@MenuTitle"></xsl:value-of>
</a>
的<xsl:attribute name="herf">,herf是错误的,正确应该为href。Top
7 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2006-03-07 18:59:18 得分 5
我以为这些都是笔误呢~~~~~
后面的那个给出的转换也是错的,结果就没有合计能写错。。。
<li><a here="#" title="aa">hehe</a>Top
8 楼zouzou888888(zou)回复于 2006-03-07 19:05:10 得分 0
hehe!谢谢。这些代码辛苦写了半天。发现这种笔误真是要命。!惭愧惭愧!
多谢楼上。!Top
9 楼zouzou888888(zou)回复于 2006-03-07 19:18:54 得分 0
另外,为什么在css中定义了div中ul li的属性。在xsl中引用样式class时,在IE预览时效果挺好,但在localhost/demo/index.aspx访问时css中的属性没有起作用。
以下是部分css代码:
div.childNavMenu
{
margin:8px 0px 0px 20px;
width:80px;
/* height:expression(body.offsetHeight-125);*/
padding:0px;
}
/*三级导航菜单超链接的样式 */
div.childNavMenu a
{
display:block;
width:80px;
cursor:hand;
margin-left:10px;
margin-right:10px;
color: Black;
text-decoration:none;
list-style:none;
}
div.childNavMenu a:hover
{
text-decoration:none;
background:#6bb1f7;
}
div.childNavMenu ul
{
list-style:none;
padding:0px;
margin:0px;
}
div.childNavMenu li
{
font-size:12px;
border:solid 1px #3B5298;
margin-top:2px;
margin-bottom:5px;
width:80px;
padding-left:10px;
padding-top:2px;
padding-bottom:4px;
text-align:left;
background:#5d82c6 url(../topimage/childMenubg2.gif) repeat left;
}
部分xsl代码:
<div class="childNavMenu">
<xsl:attribute name="id">childmenu<xsl:value-of select="positio()" /></xsl:attribute>
<ul>
<xsl:for-each select="/Menus/menu[@ParentMenuId=$Id]">
<xsl:if test="@MenuType[.>2]">
<li>
<a><xsl:attribute name="href">
<xsl:value-of select="@MenuHerf"/></xsl:attribute>
<xsl:value-of select="@MenuTitle"></xsl:value-of>
</a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</div>
用IE浏览时可以看到效果,ul中的list-style:none属性有效,但用localhost/demo/index.aspx访问样式完全变了,list-style:none属性无效了。出现列表的点点了。
请大侠继续指教。Top




