以文本方式查看主题

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


--  作者:linruixin
--  发布时间:11/7/2010 5:03:00 PM

--  XML和XSLT的问题
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet href="exc8_1copy.xslt" type="text/xsl"?>
<日常用品>
     <名称>牙刷
         <单价>1.2元</单价>
         <生产日期>2006年3月5号</生产日期>
     </名称>
     <名称>香皂
         <单价>2.4元</单价>
         <生产日期>2006年7月6号</生产日期>
      </名称>
</日常用品>
我先要提取商品的名称··牙刷··肥皂
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
 <html>
  <head><title>商品名称</title></head> 
  <body>
  商品名称:
  <xsl:value-of select="日常用品/名称"/>
  </body>
 </html>
</xsl:template> 
</xsl:stylesheet>
这里先不管循环,这样输出后面日期和单价都会输出,要怎么样只提取名称·?
--  作者:Qr
--  发布时间:11/7/2010 5:41:00 PM

--  
<xsl:value-of select="日常用品/名称/text()"/>

--  作者:linruixin
--  发布时间:11/7/2010 6:03:00 PM

--  
为什么取循环的时候
<xsl:for-each select="日常用品/名称">
<xsl:value-of select="日常用品/名称/text()"/>
</xsl:for-each>
反而什么都没有输出?
--  作者:Qr
--  发布时间:11/7/2010 6:09:00 PM

--  
晕,<xsl:value-of select="text()"/>
--  作者:linruixin
--  发布时间:11/7/2010 6:09:00 PM

--  
取值是上一个路径接下去?
--  作者:jj_long
--  发布时间:12/11/2010 9:26:00 PM

--  
在写XSLT之前,建议你改进你的XML,比如改成:
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet href="exc8_1copy.xslt" type="text/xsl"?>
<日常用品>
     <名称 值=“牙刷”>
         <单价>1.2元</单价>
         <生产日期>2006年3月5号</生产日期>
     </名称>
     <名称 值=“香皂”>
         <单价>2.4元</单价>
         <生产日期>2006年7月6号</生产日期>
      </名称>
</日常用品>

这样你的XSLT写起来就比较直接并容易理解了,比如:

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
  <head><title>商品信息</title></head>
  <body>
      <xsl:apply-templates/>
  </body>
</html>
</xsl:template>

<xsl:template match="名称">
    <p>
     名称:<xsl:value-of select="@值"/>
     单价:<xsl:value-of select="单价"/>
     生产日期:<xsl:value-of select="生产日期"/>
    </p>
</xsl:template>
</xsl:stylesheet>


--  作者:蓝色兔兔宝
--  发布时间:12/16/2010 11:59:00 AM

--  
jj_long 正解!
--  作者:爱玄幻的中山狼
--  发布时间:5/11/2012 10:40:00 AM

--  
很老的贴子了,有没有关于更多实例的,看了很多xml,不太会转成xsl啊
--  作者:ljuyx
--  发布时间:5/15/2012 11:57:00 AM

--  
版主,帮忙看看我这个帖子http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=124079
怎么可以吧原本每行6列的数据变成每行10列呢?求指教,谢谢了先
--  作者:ljuyx
--  发布时间:5/15/2012 11:58:00 AM

--  
帮忙看看这个帖子好不?求指教
http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=124079
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
97.656ms