以文本方式查看主题

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


--  作者:xiaofengtoo
--  发布时间:11/22/2007 6:20:00 PM

--  XSLT 结构问题 ,请帮忙!!!
用XSLT 有段时间了,遇到了个问题 卡了3天了 。。。。
主要是我们在开发中不可以用脚本 。。
源文件:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
 <CNTR No="A" Item="a1"/>
 <CNTR No="A" Item="a2"/>
 <CNTR No="A" Item="a3"/>
 <CNTR No="A" Item="a4"/>
 <CNTR No="c" Item="c1"/>
 <CNTR No="c" Item="c2"/>
 <CNTR No="c" Item="c3"/>
 <CNTR No="c" Item="c4"/>
 <CNTR No="b" Item="b1"/>
 <CNTR No="b" Item="b2"/>
 <CNTR No="b" Item="b3"/>
</Root>

我的结果 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://mycompany.com/mynamespace">
 <CNTR No="A">
  <Item Value="a1"/>
  <Item Value="a2"/>
  <Item Value="a3"/>
  <Item Value="a4"/>
 </CNTR>
 <CNTR No="b">
  <Item Value="b1"/>
  <Item Value="b2"/>
  <Item Value="b3"/>
 </CNTR>
 <CNTR No="c">
  <Item Value="c1"/>
  <Item Value="c2"/>
  <Item Value="c3"/>
  <Item Value="c4"/>
 </CNTR>
</Root>

怎么整XSLT 文件?


--  作者:xiaofengtoo
--  发布时间:11/22/2007 6:22:00 PM

--  
我写的XSLT :
[color=#FF0000<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
 <xsl:template match="/">
  <Root>
   <xsl:for-each-group select="Root/CNTR" group-by="@No">
    <xsl:element name="CNTR">
     <xsl:sort select="@No" data-type="text" order="ascending"/>
     <xsl:attribute name="N0"><xsl:value-of select="@No"/></xsl:attribute>
     <xsl:element name="Item">
      <xsl:attribute name="Value"><xsl:value-of select="@Item"/></xsl:attribute>
     </xsl:element>
    </xsl:element>
   </xsl:for-each-group>
  </Root>
 </xsl:template>
</xsl:stylesheet>[/color]


晕呀  老是提示element may not contain xsl: for-each-group

[此贴子已经被作者于2007-11-23 10:38:50编辑过]

--  作者:xiaofengtoo
--  发布时间:11/22/2007 6:24:00 PM

--  
那位给我个建议???
我想用XSLT ,不要用脚本!!!
--  作者:xiaofengtoo
--  发布时间:11/23/2007 10:40:00 AM

--  
谁给我个建议 。。。  郁闷
--  作者:xiaofengtoo
--  发布时间:11/23/2007 11:19:00 AM

--  
问题解决,是解析需要用XMLSpy 自带的,另我的XSLT 也有点问题:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
 <xsl:template match="/">
  <Root>
   <xsl:for-each-group select="Root/CNTR" group-by="@No">
    <xsl:element name="CNTR">
     <!--<xsl:sort select="@No" data-type="text" order="ascending"/>-->
     <xsl:variable name="cus">
      <xsl:value-of select="@No" />
     </xsl:variable>
     <xsl:attribute name="N0"><xsl:value-of select="$cus"/></xsl:attribute>
     <xsl:for-each select="../CNTR[@No=$cus]">
      <xsl:element name="Item">
       <xsl:attribute name="Value"><xsl:value-of select="@Item"/></xsl:attribute>
      </xsl:element>
     </xsl:for-each>
    </xsl:element>
   </xsl:for-each-group>
  </Root>
 </xsl:template>
</xsl:stylesheet>

这是正确的XSLT


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