以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  关于nodename的用法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=57061)


--  作者:我是学习者
--  发布时间:12/21/2007 7:31:00 PM

--  关于nodename的用法
code7-7.xml


<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="code7-7.xsl"?>
<cart>
 <customer>
  <name>赵子龙</name>
  <email>Jerry@wlw.org</email>
  <zipcode>361021</zipcode>
  <address>中国福建省厦门市</address>
 </customer>
 <shoppingItem>
  <item>
   <No>1001</No>
   <Name>三国演义</Name>
   <price>30.00</price>
   <publisher>文艺出版社</publisher>
  </item>
  <item>
   <No>1002</No>
   <Name>红楼梦</Name>
   <price>120.00</price>
   <publisher>文艺出版社</publisher>
  </item>
 </shoppingItem>
</cart>

code7-7.xsl


<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:template match="contactInfo">
 <xsl:for-each select="./*">
  <xsl:choose>
   <xsl:when test=".[.!nodename()='customer']">
    <div style="background-color:teal;font-size:12pt">
     <xsl:value-of select="name"></xsl:value-of>
    </div>
   </xsl:when>
   <xsl:otherwise>
    <div style="font-size:12pt">你所订购的图书:</div>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

调试的时候就是。xsl文件中
test=.[.!nodename()='customer']
出错,不知到底如何用nodename()


请求帮助


--  作者:我是学习者
--  发布时间:12/21/2007 7:33:00 PM

--  
不好意思,有点错误,就是xml文件中的根元素应该是<contactInfo>
--  作者:Qr
--  发布时间:12/24/2007 12:06:00 PM

--  
XSL中没有nodename(),只有name()。
--  作者:我是学习者
--  发布时间:12/25/2007 12:27:00 PM

--  
把nodename()换做name()后还是有错误,错误还是在本行上.
--  作者:enyaxp
--  发布时间:12/27/2007 12:46:00 AM

--  
是找节点名为‘customer’,也就是将购买者的名字用特殊格式显示吗?

将test条件 .[.!nodename()='customer'] 改成 name() = 'customer'

结果如下看看是不是你想要的样式。


--  作者:enyaxp
--  发布时间:12/27/2007 12:48:00 AM

--  

此主题相关图片如下:
按此在新窗口浏览图片
--  作者:我是学习者
--  发布时间:12/28/2007 2:05:00 PM

--  
对对,我就是想找节点名为‘customer’,而后用css样式的
我也调试了,正确,谢谢
不过一本xml书上就是我上面写的那个例题,竟然不能运行!
谢谢,麻烦再问一句哪有比较好的xsl书
--  作者:enyaxp
--  发布时间:12/28/2007 4:36:00 PM

--  
网上有篇文章叫“跟我学XSL”,用它入门挺好的。

书的话我一直用的是《xsl高级编程》,不过这书太老了现在可能不太好买。

推荐去微软的MSDN,里面有XSL的全部知识还有例子。


--  作者:我是学习者
--  发布时间:1/1/2008 4:01:00 PM

--  
谢谢!!!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
58.594ms