gpt4 book ai didi

javascript:XML 到 IE 10 中的字符串

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:26 26 4
gpt4 key购买 nike

我正在努力使这个非常古老的 Web 应用程序现代化以在现代浏览器上运行,但我遇到了 IE 10 的问题。最终我不得不将 XML 文档转换为字符串:

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

第一个 if block 用于 Firefox 和 Chrome;效果很好。 else 之后的行用于 Internet Explorer。它在 8 和 9 上运行良好,但在 10 上运行良好(并且必须在所有 3 个上运行)。据我所知,这是因为 IE 10 从以前的 Microsoft 处理 xml 的方式转向更接近标准的方式。但是,我还没有在 IE 10 中找到 .xml 属性的替代品?

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

谢谢。

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

编辑 2:所以我找到了答案,但显然我在几个小时内都不允许实际回答我自己的问题,所以我暂时将其复制到这里:

AA当然,在我发布这篇文章后大约 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 上工作,最后一行仍然必须存在

最佳答案

尝试使用 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

关于javascript:XML 到 IE 10 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18382417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com