怎么会这样,这与你的xsl编写有关,建议用xmlspy修改一下换行符

解决方案 »

  1.   

    我就是用xmlspy写的,我绝对保证xsl中没有换行字符了,但是转换后的html确有了换行符。实在郁闷啊。
      

  2.   

    是不是这样啊
    <data>
      sdh
    </data>如果不是<data> sdh</data>好像都会有换行存在
      

  3.   

    有没有办法解决啊!!xsl不会必须有换行存在吧!!!那我可就惨了!
      

  4.   

    要是能把xml和xsl文件贴出来就好办了。
      

  5.   

    我想这个和xml,xsl是什么没有太大关系吧,不过应 xue_sharp(靠) 老兄得要求,我就贴出来,也是非常简单的,贴出来没有什么修饰:
    XML::::::::::::::::::::::::::::::
    <?xml version="1.0" encoding="GB2312"?>
    <table name="030126164342516.xml" innerId="testmedia">
      <!--作为一个数据表的根元素-->
      <columns>
        <column id="1" filed="FILE_NAME" table="T_CM_FILE">文件名称</column>
        <column id="2" filed="USER_NAME" table="T_CM_FILE">用户名</column>
        <column id="3" filed="PHASE_ID" table="T_CM_FILE">阶段ID</column>
        <column id="4" filed="PRJ_CODE" table="T_CM_FILE">项目编号</column>
        <column id="5" filed="FILE_DISPLAY" table="T_CM_FILE">名称</column>
        <column id="6" filed="ORI_NAME" table="T_CM_FILE">原始名称</column>
        <column id="7" filed="CONTENT_TYPE" table="T_CM_FILE">类型</column>
        <column id="8" filed="FILE_LOCAL" table="T_CM_FILE">本地路径</column>
        <column id="9" filed="FILE_REMOTE" table="T_CM_FILE">服务器路径</column>
        <column id="10" filed="UPLOAD_TIME" table="T_CM_FILE">上载时间</column>
        <column id="11" filed="STATE" table="T_CM_FILE">当前状态</column>
        <column id="12" filed="MODIFY_TIME" table="T_CM_FILE">最后修改时间</column>
        <column id="13" filed="DOWN_TIMES" table="T_CM_FILE">下载次数</column>
        <column id="14" filed="MEDIA_DES" table="T_CM_MEDIAFILE">描述</column>
      </columns>
      <rows>
        <row id="1">
          <col name="文件名称">2003-2-9-10.42.16.984000_JSP3.JPG</col>
          <col name="用户名">ycgmedia</col>
          <col name="阶段ID">1</col>
          <col name="项目编号">testuploadmedia</col>
          <col name="名称">文件的显示名称</col>
          <col name="原始名称">JSP3.JPG</col>
          <col name="类型">image/pjpeg</col>
          <col name="本地路径" />
          <col name="服务器路径">d:\prjfile\testuploadmedia\multimedia</col>
          <col name="上载时间">2003-02-09 10:42:17.310000</col>
          <col name="当前状态" />
          <col name="最后修改时间">2003-02-09 10:42:17.310000</col>
          <col name="下载次数" />
          <col name="描述">文件的描述</col>
        </row>
      </rows>
    </table>XSL:::::::::::::::::::::::::::::::::
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>
        <xsl:template match="/">
    <script language="javascript">
    text = '<form name="listmedia" action="listmedia"><table border="1" width="25%"><tr><td>序号</td><td>名称</td><td>类型</td><td>上载时间</td><td>描述</td></tr><xsl:for-each select="/table/rows/row"><tr><td><xsl:number value="position()" format="1"/></td><td><xsl:value-of select="col[@name='名称']"/></td><td><xsl:value-of select="col[@name='类型']"/></td><td><xsl:value-of select="col[@name='上载时间']"/></td><td><xsl:value-of select="col[@name='描述']"/></td></tr></xsl:for-each></table></form>';
    text = replace(text,chr(13),"");
            parent.<xsl:value-of select="/table/@innerId"/>.innerHTML=text;
            </script>
     </xsl:template>
    </xsl:stylesheet>
      

  6.   

    xsl中没有换行符,就是用xmlspy写的转换后的html也有换行符
    这样的问题确实有
    555~~~~~~~~~~~~~~~~~~~~~~~~
      

  7.   

    试试我帮你改的xsl<?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>
        <xsl:template match="/">
    <script language="javascript">text = '<form name="listmedia" action="listmedia"><table border="1" width="25%"><tr><td>序号</td><td>名称</td><td>类型</td><td>上载时间</td><td>描述</td></tr><xsl:for-each select="/table/rows/row"><tr><td><xsl:number value="position()" format="1"/></td><td><xsl:value-of select="col[@name='名称']"/></td><td><xsl:value-of select="col[@name='类型']"/></td><td><xsl:value-of select="col[@name='上载时间']"/></td><td><xsl:value-of select="col[@name='描述']"/></td></tr></xsl:for-each></table></form>';text = replace(text,chr(13),"");parent.<xsl:value-of select="/table/@innerId"/>.innerHTML=text;</script>
     </xsl:template>
    </xsl:stylesheet>
      

  8.   

    这样不行啊,关键问题是在为text赋值时候就提示有错误,就是在xsl转换的时候有了换行,赋植就出错了,根本不给替换的机会。
      

  9.   

    呵呵,终于搞定了,不过有点麻烦,就是分析了xsl转换换行的规律,我把在不换行的就拼接一次。
    xsl:::::::::::::::::::
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>    <xsl:template match="/">
        <html><body>
    <script language="javascript">
    text = '<form name="listmedia" action="listmedia">'
    text += '<table border="1" width="25%">'
    text += '<tr>'
    text += '<td>序号</td><td>名称</td><td>类型</td><td>上载时间</td><td>描述</td>'
    text += '</tr>'
    text += '<xsl:for-each  select="/table/rows/row"><tr>'
    text += '<td><xsl:number value="position()" format="1"/></td><td><xsl:value-of disable-output-escaping="yes" select="col[@name='名称']"/></td><td><xsl:value-of select="col[@name='类型']"/></td><td><xsl:value-of select="col[@name='上载时间']"/></td><td><xsl:value-of select="col[@name='描述']"/></td>'
    text += '</tr></xsl:for-each>'
    text += '</table>'
    text += '</form>';
    //text = replace(text,chr(13),"");
            parent.<xsl:value-of select="/table/@innerId"/>.innerHTML=text;
            </script>
            </body></html>
     </xsl:template></xsl:stylesheet>
    ////////////////////////////////////////
    谢谢各位参与!:)
    如果有其他办法可通知我!不胜感激!:)[email protected]