不好意思,第二行代码中的ModifyStatConfigData应该改为:MyXml

解决方案 »

  1.   

    谢谢 boneeater的支持。不知是这个问题没人知道还是我没有把问题说清楚。
      

  2.   

    “发现XML文件中的encoding="GB2312"部分没有”
    -----------------------------------------------
    你是如何处理将来自请求中的xml文件转换为字符串的?
      

  3.   

    举个例子吧:var MyXml = new ActiveXObject("MSXML2.DOMDocument");我为MyXml创建的内容如下:
    <?xml version="1.0" encoding="GB2312"?>
    <ServerList>
      <Server>
        <ServerType>String</ServerType>
        <ServerName>String</ServerName>
        <Status>String</Status>
        <StartTime>String</StartTime>
        <Describing>String</Describing>
      </Server>
    </ServerList>当我执行语句: alert(MyXml.xml)时,弹出的内容如下:
    <?xml version="1.0"?>
    <ServerList>
      <Server>
        <ServerType>String</ServerType>
        <ServerName>String</ServerName>
        <Status>String</Status>
        <StartTime>String</StartTime>
        <Describing>String</Describing>
      </Server>
    </ServerList>encoding="GB2312" 这一部分丢失,将该XML文件上传到服务器端也是这样的。为什么?
      

  4.   

    我上传到服务端是通过一个input对象上传的,过程如下:<form name="frmSend" action="...." method="post">
      <input type="text" name="ipXml">
    </form>JS如下:  frmSend.ipXml.value = MyXml.xml;
      frmSend.submit();
      

  5.   

    如果你在服务器端显示xml是这样处理的(以下是Jscript):
    ----------------------------------------------
    <%
      var doc = new ActiveXObject("Msxml2.DOMDocument.5.0");
      ... ...
      Response.ContentType = "text/xml";
      Response.Write(doc.xml);
    %>试试看这样:
    <%
      var doc = new ActiveXObject("Msxml2.DOMDocument.5.0");
      ... ...
      Response.ContentType = "text/xml";
      doc.save(Response);
    %>
      

  6.   

    使用doc.xml取出的xml文本是不包含编码声明的
    ---------------------------------------------
    The xml property always returns a Unicode string. That is, the xml property for DOMDocument converts the document from its original encoding to Unicode. As a result, the original encoding attribute is removed. For example, <?xml version="1.0" encoding="UTF-8"?> appears in the xml property as follows.<?xml version="1.0"?>
    If the original encoding was not removed by the xml property, the following line returns an error indicating the parser cannot switch from Unicode to UTF-8 encoding.xmlDoc.loadxml(xmlDoc.xml);
    If you use the save method, the original encoding is preserved. For example, if you load a document in Microsoft&reg; Windows&reg; 1252 encoding, it will be saved in that format.
      

  7.   

    谢谢xjdawu,你正好弄反了,我的XML是由客户端创建的,问题在于这个XML还没有传到服务端,而是在客户端用alert函数弹出XML的内容之中就丢失了encoding部分。这部分内容是这样添加的:
    var piXML = MyXml.createProcessingInstruction("xml", 'version="1.0" encoding="GB2312"');
    MyXml.insertBefore(piXML, MyXml.firstChild);不知是不是IE自动将encoding部分去掉了?
      

  8.   

    使用xml属性得到的xml文本是不包含encoding部分的,如果按照你的方式传递xml到服务器端,可以将encoding部分也做一个文本域,然后在服务器端再处理,如:
    ------------------------------------
    <form name="frmSend" action="...." method="post">
      <input type="text" name="ipXml">
      <input type="text" name="xmlEncode" value="gb2312">
    </form>
      

  9.   

    原来如此,那如何将如何保证将整个XML文本上载到服务端,而不丢失encoding部分呢,请赐教!
      

  10.   

    按照xjdawu的这种方法确实可以实现,并且Web Server是我自己用Delphi写的,完全可以在收到的XML文本中添加encoding部分,只是我想直接在客户端解决。
      

  11.   

    如果需要显示xml文件完整内容可以使用save方法,具体可以在MSDN查阅MSXML手册