代码之家  ›  专栏  ›  技术社区  ›  ashwnacharya

从javascript中的字符串加载XML在IE 8中工作正常,在Firefox中失败

  •  1
  • ashwnacharya  · 技术社区  · 15 年前

    我有一个XML文件,它是通过序列化C对象生成的。

    我想使用javascript解析这个XML。

    当我尝试使用JavaScript将字符串加载为XML时,它在IE8中工作正常,但在Firefox中失败。

    这是我使用的代码

    if (window.DOMParser)
    {
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(stringValue, 'text/xml');
    }
    else
    {
    xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
    xmlDoc.async = 'false';
    xmlDoc.loadXML(stringValue);");
    }
    

    你知道为什么吗?我想我已经注意到了上面代码中浏览器的不兼容性。 还有,这是 XML file 如果有什么帮助的话。

    1 回复  |  直到 15 年前
        1
  •  0
  •   ashwnacharya    15 年前

    好的,超级Wierd解决方案… 原来XML文件之间有一些空白,而DOMParser .PARSEOFF()方法以某种方式将所有空白空间加载为节点。

    像这样调整我的C序列化代码解决了这个问题:

    XmlDocument tempXml = new XmlDocument();
    tempXml.PreserveWhitespace = false;
    tempXml.LoadXml(serializedXML);  
    hdnSiteConfig.Value = tempXml.OuterXml;