背景:一个HTML界面,dhtmlx框架,动态调用xml文件的数据错误:在html界面中用dhtmlx框架动态调用xml的数据,在火狐中是没问题的,但是在IE中就出现问题,Error type: LoadXML Description: Incorrect XML,截图如下
我初步得出是xml中包含中文的原因,但是xml必须包含中文,该如何解决这个问题,求帮助
急急急

解决方案 »

  1.   

    下面是xml文件的内容<?xml version="1.0" encoding="gbk"?>
    <data>
    <item id='1'>
    <percentage>35</percentage><area>崇明岛</area>
    </item>
    <item id='2'>
    <percentage>50</percentage><area>奉贤区</area>
    </item>
    <item id='3'>
    <percentage>65</percentage><area>松江区</area>
    </item>
    <item id='4'>
    <percentage>30</percentage><area>杨浦区</area>
    </item>
    <item id='5'>
    <percentage>45</percentage><area>虹口区</area>
    </item>
    <item id='6'>
    <percentage>45</percentage><area>宝山区</area>
    </item>
    <item id='7'>
    <percentage>85</percentage><area>金山区</area>
    </item>
    <item id='8'>
    <percentage>35</percentage><area>普陀区</area>
    </item>
    <item id='9'>
    <percentage>75</percentage><area>徐汇区</area>
    </item>
    <item id='10'>
    <percentage>85</percentage><area>嘉定区</area>
    </item>
    </data>
      

  2.   

    js源码,如下var grid = new dhtmlXGridObject('grid');
    grid.setImagePath("dhtmlxGrid/codebase/imgs/");
    grid.setHeader("企业类型,进货量,交易量,进销比对率(%),达标差异,警示状态,进货记录(条),交易状态(条)");
    grid.setInitWidths("*,100,100,100,100,100,100,100");
    grid.setColAlign("left,right,right,right,right,right,right,right");
    grid.setColTypes("ed,ed,ed,ed,ed,ed,ed,ed");
    grid.setColSorting("str,int,int,int,int,str,int,int");
    grid.setSkin("dhx_skyblue");
    grid.init();
    grid.loadXML("dhtmlxGrid/samples/common/grid_dates.xml");
      

  3.   

    xml是下面这个:<?xml version="1.0" encoding="gbk"?>
    <rows>
      <row id="1">
    <cell>企业1</cell>
    <cell>2000</cell>
    <cell>1900</cell>
    <cell>90</cell>
    <cell>1900</cell>
    <cell>无</cell>
    <cell>1900</cell>
    <cell>1900</cell>
    </row>
    <row id="2">
    <cell>企业2</cell>
    <cell>2000</cell>
    <cell>1900</cell>
    <cell>90</cell>
    <cell>1900</cell>
    <cell>无</cell>
    <cell>1900</cell>
    <cell>1900</cell>
    </row>
    <row id="3">
    <cell>企业3</cell>
    <cell>2000</cell>
    <cell>1900</cell>
    <cell>90</cell>
    <cell>1900</cell>
    <cell>无</cell>
    <cell>1900</cell>
    <cell>1900</cell>
    </row>
    </rows>
      

  4.   

    你是不是本地html? 没在服务器上?
      

  5.   


    嗯,我只是在做一个demo,演示用的,你有没有解决办法
      

  6.   

    把中文作为属性值
    <cell value="中文"></cell>
      

  7.   


    <row id="1">
            <cell>企业1</cell>
            <cell>2000</cell>
            <cell>1900</cell>
            <cell>90</cell>
            <cell>1900</cell>
            <cell>无</cell>
            <cell>1900</cell>
            <cell>1900</cell>
    </row>
    属性太多,没办法那样做
      

  8.   

    这个问题具体 我也不清楚,还有没有更多的错误信息了? 就这些 信息么?要是考虑中文的问题的话  可以这样试试response.setContentType("text/xml;charset=UTF-8");    //就是加了这句 
    out = response.getWriter(); 
      

  9.   

    不细看贴的习惯被你发现了  会不会有不可见字符。  算了,你还是把你的demo 发过来我看看吧。[email protected]
      

  10.   

    <%@ page language="java" contentType="text/xml; charset=GBK"
        pageEncoding="GBK"%>头部 也没有问题?   动态读取xml   也得走容器呀,只不过是你本地的tomcat 之类的东西而已。
      

  11.   


    部署到服务器上就行了。貌似DWZ也有这个问题。http://j-ui.com/
      

  12.   

    亲,我搞定了,是文件固有编码的原因,IE在解析的时候会在文件固有编码的基础上,按照文件中设置的编码在进行解析一遍,所以会出现乱码,这是初步结论举个例子,假如我们在自己的电脑上建立一个文件,如*.txt,它的默认编码是系统的默认编码,一般就是gbk、gb2312之类的(自己可以测试下,先建立一个文件,将其拿到MyEclipse下,看看它的编码格式)
      

  13.   

    ok  解决了就行, 还是setContentType("text/xml;charset=UTF-8");    的问题。
      

  14.   

    你们可能会问,原先同时在GBK的环境下,把所有可以设置的地方都设置为GBK,应该不会有问题了吧,但是,很遗憾的告诉你们,还是会出问题
      

  15.   


    我给你发了demo源码,你用IE试一下,还是会出问题,但是你拿到MyEclipse里面,把它们的格式都设置为UTF-8,就没有问题了
      

  16.   

    编码问题确实很麻烦一般来说我都会统一使用utf-8 编码,这样麻烦事少碰上这种问题,页面的编码 xml的编码不一致也有可能
      

  17.   

    最近也在学习DHX,能发一份代码给我看下吗 [email protected]