新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 急!请教高手们:xslt2.0中<xsl:sort ...>对中文排序不准确的问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3109 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 急!请教高手们:xslt2.0中<xsl:sort ...>对中文排序不准确的问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hanll 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:94
      门派:XML.ORG.CN
      注册:2005/3/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hanll发送一个短消息 把hanll加入好友 查看hanll的个人资料 搜索hanll在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hanll的博客楼主
    发贴心情 急!请教高手们:xslt2.0中<xsl:sort ...>对中文排序不准确的问题

    用的是xslt2.0  ,由saxon8解析  

    用sort排序时,对中文排序很不准,加入lang=“zh-CN”也不好使,还是我写的语言编码(zh-CN)不准确?

    请问该如何解决?你们遇到过么?3Q


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/30 17:36:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客2
    发贴心情 
    ??怎么个不准确啊,用的是GB2312吗?没用过saxon,不太清楚,举个例子看看啊。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/30 18:09:00
     
     hanll 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:94
      门派:XML.ORG.CN
      注册:2005/3/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hanll发送一个短消息 把hanll加入好友 查看hanll的个人资料 搜索hanll在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hanll的博客3
    发贴心情 
    xml文件
    <?xml version='1.0' encoding='GB2312'>
    <Layout>
    <F135><ROW></ROW></F135>
    <F169>
       <ROW num="1">
          <F179>汽水</F179>
          <F178>李小姐</F178>
          <F182>54</F182>
          <F180>15</F180>
          <F177>武汉</F177>
          <F181>3.6</F181>
       </ROW>
       <ROW num="2">
          <F179>鸭肉</F179>
          <F178>林小姐</F178>
          <F182>403.2</F182>
          <F180>21</F180>
          <F177>武汉</F177>
          <F181>19.2</F181>
       </ROW>
       <ROW num="3">
          <F179>猪肉</F179>
          <F178>方先生</F178>
          <F182>168</F182>
          <F180>21</F180>
          <F177>天津</F177>
          <F181>8</F181>
       </ROW>
       .....

    =====================================

    xslt文件:
    ......
    <table>
    <xsl:for-each select="current-group()">
    <xsl:sort  order="ascending" select="F179" xml:lang="'zh-CN'" />
    <tr><td><xsl:value-of select="F180"/></td><tr>
    ......

    ============================================
    使用saxon8.jar进行transform,代码如下:

    StreamSource xml = new StreamSource("data.xml");
      
    StreamSource xslt = new StreamSource("test.xsl");  

    Transformer transformer;
      
    Transform aaa = new Transform();
      
    StringWriter str = new StringWriter();
      
    try {
    StreamResult result = new StreamResult(new FileOutputStream("result.html"));//new StreamResult(response.getOutputStream());

    transformer = factory.newTransformer(xslt);
    transformer.transform(xml,result);

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/31 9:14:00
     
     vfssq 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2005/3/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vfssq发送一个短消息 把vfssq加入好友 查看vfssq的个人资料 搜索vfssq在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vfssq的博客4
    发贴心情 
    order by(-socre)试一试这个,不要用order
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/31 14:06:00
     
     hanll 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:94
      门派:XML.ORG.CN
      注册:2005/3/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hanll发送一个短消息 把hanll加入好友 查看hanll的个人资料 搜索hanll在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hanll的博客5
    发贴心情 
    多谢楼上的,不过我还是不太明白,能说的再详细一些么?
    格式怎么写? 3Q
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/31 14:30:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客6
    发贴心情 
    嗯,我这里也很奇怪,个别的汉字排序是有些问题,我现在也没有搞清楚,而且1.0就有这个问题。
    XML文件:
    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type="text/xsl" href="2.xsl"?>
    <Layout>
     <F135>
      <ROW/>
     </F135>
     <F169>
      <ROW num="1">
       <F179>汽水</F179>
       <F178>李小姐</F178>
       <F182>54</F182>
       <F180>15</F180>
       <F177>武汉</F177>
       <F181>3.6</F181>
      </ROW>
      <ROW num="2">
       <F179>鸭肉</F179>
       <F178>林小姐</F178>
       <F182>403.2</F182>
       <F180>21</F180>
       <F177>武汉</F177>
       <F181>19.2</F181>
      </ROW>
      <ROW num="3">
       <F179>猪肉</F179>
       <F178>方先生</F178>
       <F182>168</F182>
       <F180>21</F180>
       <F177>天津</F177>
       <F181>8</F181>
      </ROW>
      <ROW num="4">
       <F179>猪肉</F179>
       <F178 >王先生</F178>
       <F182>168</F182>
       <F180>21</F180>
       <F177>北京</F177>
       <F181>8</F181>
      </ROW>
      <ROW num="5">
       <F179>猪肉</F179>
       <F178>刘先生</F178>
       <F182>168</F182>
       <F180>21</F180>
       <F177>天津</F177>
       <F181>8</F181>
      </ROW>
     </F169>
    </Layout>

    2.0的代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <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/02/xpath-functions" xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
    <xsl:template match="/">
     <xsl:for-each-group select="Layout/F169/ROW" group-by="F180">
      The Group:
      <xsl:for-each select="current-group()">
       <xsl:sort select="F178" order="descending"  lang="zh-CN"/>
       <xsl:value-of select="F178"/> 
      </xsl:for-each>
     </xsl:for-each-group>
    </xsl:template>
    </xsl:stylesheet>
    输出结果:

    <?xml version="1.0" encoding="UTF-8"?>
    The Group:
    李小姐
     
    The Group:
    王先生
    林小姐
    方先生
    刘先生
      
    1.0的代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
     <xsl:for-each select="Layout/F169/ROW">
      <xsl:sort lang="zh-CN" select="F178"/>
      <xsl:value-of select="F178"/> 
     </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    输出结果:
    <?xml version="1.0" encoding="UTF-8"?>刘先生
    方先生
    李小姐
    林小姐
    王先生

    这里“刘”字就有点问题。我这里排序也不对劲……

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/1 10:27:00
     
     hanll 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:94
      门派:XML.ORG.CN
      注册:2005/3/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hanll发送一个短消息 把hanll加入好友 查看hanll的个人资料 搜索hanll在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hanll的博客7
    发贴心情 
    但是xslt1.0版本用IE的解析器,直接打开xml文件可以输出正确的排序结果,但用saxon转换就不对了.....

    郁闷ing~

    没有用xslt2。0的朋友么?   怎么解决?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/1 13:46:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客8
    发贴心情 
    你不说我还真没有注意,我用的是XMLSPY来解析的,估计是内部转码的问题,如果IE支持2.0的话肯定也能是正确的,你看看在使用你那个类的同时又没有什么别的设置,因为像以前的dom4j就是支持中文特别差的,像java中很多的项目对中文编码都会支持的不好的,估计单从XSLT本身是没有办法解决的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/1 13:53:00
     
     vfssq 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2005/3/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vfssq发送一个短消息 把vfssq加入好友 查看vfssq的个人资料 搜索vfssq在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vfssq的博客9
    发贴心情 
    不好意思现在也回晚的话,不知道晚不晚啊,
    order_by(+/-column)
    我很久没有用了,我好像记得,一个是对match,别外一个是对tset进行排序的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/9 18:44:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/22 19:41:05

    本主题贴数9,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms