javascript:IE 10中的xml到字符串

时间:2013-08-22 13:51:42

标签: javascript xml internet-explorer-10

我正在努力使这个真正古老的Web应用程序现代化,以便在现代浏览器上工作,我遇到了IE 10的一个问题。最终我遇到了必须将XML文档转换为字符串的问题: / p>

function xmlToString(xmlElement)
{
     if (document.evaluate)
     {
          var serializer = new XMLSerializer()
          var strXml = serializer.serializeToString(xmlElement)
     }
     else
          var strXml = xmlElement.xml
}

第一个if块适用于Firefox和Chrome;工作正常。 else之后的行是Internet Explorer。它适用于8和9但不是10(它必须适用于所有3)。从我收集到的,这是因为IE 10从以前的微软处理xml的方式转移到更接近标准的方式。但是,我还没有找到IE 10中的.xml属性的替代品呢?

有谁知道如何在IE 10中将XML文档转换为字符串?

感谢。

编辑:因此,问题的实际原因是在IE 10中xmlElement.xml的值未定义。此外,它没有将xml文档转换为字符串;该属性已经是xml文档的字符串表示形式。仍然需要弄清楚如何在IE 10中执行此操作。

编辑2:所以我找到了答案,但显然我不允许在几个小时内真正回答我自己的问题,所以生病了,现在就把它复制到这里:

AAA当然,我发帖后大约5分钟,我终于找到了正确的问题来问Google ... -_-

无论如何,IE 9及更高版本支持XMLSerializer,因此需要弄清楚如何在不疏远任何必要浏览器的情况下检测该功能。 This page向我展示了一种检测javascript功能的绝佳方法。

这是最终的代码,适用于IE 8和10以及最新的Chrome和Firefox:

function xmlToString(xmlElement)
{
    if (typeof XMLSerializer == 'function')
    {
        var serializer = new XMLSerializer()
        var strXml = serializer.serializeToString(xmlElement)
    }
    else
        var strXml = xmlElement.xml
}

最后一行仍然必须在IE 8

上工作

2 个答案:

答案 0 :(得分:0)

尝试使用 DOMParser

function xmlToString(xmlElement)
{
     if (document.evaluate)
     {
        var parser = new DOMParser();
        var strXml = parser.parseFromString(xmlElement, "text/xml");
     }
     else
        var strXml = xmlElement.xml
}

查看有关DOMParser and XMLSerializer

的文章

这是demo

答案 1 :(得分:0)

只需让IE10使用第一个块(已经被Firefox和Chrome使用)