如何在 IE 10/11 中可靠地将 XML 转换为字符串?

2024-01-18

当使用 jQuery 解析 XML 并将其转换回字符串时,IE 10 和 IE 11 未正确保留命名空间。除了编写我自己的 stringify 代码之外,还有其他可接受的方法可以在 IE 10/11 中执行此操作吗?

这是我正在使用的代码,我也做了一个小提琴:http://jsfiddle.net/kd2tvb4v/2/ http://jsfiddle.net/kd2tvb4v/2/

var origXml = 
    '<styleSheet' 
        + ' xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"'
        + ' xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"'
        + ' xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"'
        + ' mc:Ignorable="x14ac">'
            + '<fonts count="0" x14ac:knownFonts="1"></fonts>'
        + '</styleSheet>';
var xml = $($.parseXML(origXml).documentElement);
var reprocessedXml = (new XMLSerializer()).serializeToString(xml[0]);

$('#origXml').text(origXml);
$('#reprocessedXml').text(reprocessedXml);

所以我认为xml[0].outerHTML会做的工作。奇怪的是,这在 FF 中按预期工作,但是xml[0].outerHTML and xml[0].innerHTML都是undefined在IE中。诡异的!

经典的获取技巧outerHTML当它不可用时,在这种情况下似乎仍然有效:将节点附加到虚拟元素并使用.html()。这似乎重新排列了属性的顺序(按字母顺序排列),但所有内容都被保留:

在IE11中测试,手边没有IE10:

//...your original code...
var xml = $($.parseXML(origXml).documentElement);
var rootChildXml=$('<root />').append(xml).html();
console.log(origXML,rootChildXml);

原始 XML:

<styleSheet xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" 
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
 mc:Ignorable="x14ac">
<fonts count="0" x14ac:knownFonts="1"></fonts></styleSheet>

rootChildXml:

<stylesheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" 
 mc:Ignorable="x14ac" 
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<fonts x14ac:knownFonts="1" count="0"></fonts></stylesheet>

小提琴:http://jsfiddle.net/kd2tvb4v/4/ http://jsfiddle.net/kd2tvb4v/4/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 IE 10/11 中可靠地将 XML 转换为字符串? 的相关文章

随机推荐

  • Google 表格中的复制到剪贴板功能

    我想编写一个简单的 Google 函数来复制列A to V将 Google 表格复制到剪贴板以在其他应用程序中使用 到目前为止我有以下代码 但我需要将内容复制到剪贴板 我会使用什么命令 function onOpen Spreadsheet
  • 控件必须与文本标签关联

    我收到错误 控件必须与文本标签关联 这段代码是 i i 该错误与这个 eslint 规则 https github com evcohen eslint plugin jsx a11y blob master docs rules labe
  • Windows 相当于 UNIX pwd

    如何在 Windows 上的命令提示符中查找本地路径 这会在控制台中打印它 echo cd 或者将此命令粘贴到 CMD 中 然后您将获得pwd echo echo off echo echo cd gt C WINDOWS pwd bat
  • 将 pandas 转换为定义用于键值的列的字典

    有 pandas 数据框 test df 我的目标是将其转换为字典 因此我运行这个 id Name Gender Age 0 1 Peter M 32 1 2 Lara F 45 因此我运行这个 test dict test df set
  • 查找范围内缺失的日期 (php)

    我想识别 PHP 数组中缺失的日期 例如 这个范围 2013 06 12 2013 06 13 2013 06 26 2013 06 27 2013 06 29 缺少以下日期 2013 06 14 2013 06 15 2013 06 16
  • 如何删除数组中最后一个逗号和空格? Java [重复]

    这个问题在这里已经有答案了 伙计们 我想知道如何从数组中删除多余的逗号和空格 当我运行该程序时 它给我 1 2 3 4 5 我想要的是 1 2 3 4 5 主要必须保持不变 PrintArray 方法是我需要帮助的方法 参考重复的问题陈述
  • 如何从 iPhone (swift) 应用程序打开 WhatsApp?

    我在用webview对于我的 Swift 应用程序 我有 Share on WhatsApp 我的网站上的按钮在浏览器上运行良好 但在 iPhone 应用程序上 当我点击按钮时 没有任何反应 如何从我的应用程序打开 WhatsApp 我在用
  • 何时通过服务引用使用 WCF ChannelFactory [重复]

    这个问题在这里已经有答案了 我正在浏览 WCF 教程 发现这些教程指出我需要提供一个 mex 端点 以允许隐式向客户端添加服务引用 我想这允许 VS 在使用生成的 WSDL 文件时创建代理类 然而 我试图熟悉的代码库不使用隐式服务引用 相反
  • 将数据从表单提交到 django 视图

    当我打开 html 文件时 它会按预期显示 当我在文本框中输入数据并提交时 它会将我重定向到localhost myapp output 但为什么我在文本框中输入的数据没有提交 例如localhost myapp output data I
  • EclipseLink、EntityManager 需要两个持久性单元

    我有一个 jar 库 A 或 eclipse 中的项目 它有自己的持久性单元 META INF persistence xml 和一些实体类 以及使用该库的另一个项目 B 在项目 B 中还有持久化单元和实体类 在项目 B 中 我需要使用项目
  • 嵌入、对象和视频标签之间的区别?

    据我所知 我知道embed tag用于嵌入来自 youtube 等网站的视频 object tag适用于 Flash 视频和video tags受到HTML5 但我很好奇这些标签的深入细节 以及作为一名开发人员 应该在哪里使用哪个标签 em
  • SSRS - 后续页面内容区域中标题和 tablix 之间的空格/边距

    好吧 我知道这个问题很难消化 所以我希望这张附图能让我的问题更有意义 基本上我想在第一页之后在标题和 tablix 之间保留一些空间 我对标题使用底部边框 用户不希望看到表格和标题粘在一起 尝试放置空文本框 隐藏 但实际上不起作用 因为我无
  • django 错误无法导入名称“RemovedInDjango30Warning”

    伙计们 我对 Django 相当陌生 我刚刚开始从事一个个人项目 并决定滥用 pycharm 我认为它与错误有关 或不相关 当我跑步时python manage py runserver我收到下面发布的错误 我做了一些谷歌搜索 看起来它是由
  • C++中的vtable是什么[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我需要虚拟表 https stackoverflow com questions 3004501 why do i need virtual table C 中的 vtable 是什么 到目前为
  • 纯虚函数调用

    我正在使用 boost python 来制作用 C 编写的 python 模块 我有一些带有纯虚函数的基类 我已将其导出如下 class Base virtual int getPosition 0 boost python class B
  • 如何在 elm 中按索引获取列表项?

    我有一个清单 现在我想要第 n 项 在哈斯克尔我会使用 但我找不到它的榆树变体 Elm 添加了数组0 12 1 http elm lang org blog announce 0 12 1 elm 并且在 0 19 中对实现进行了大规模修改
  • 如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?

    我是 Access 新手 之前使用过 C SQL Server 和 Net 我有一个项目正在进行 我必须完成一些部分 该场景可以描述为 带有子表单的 Access 表单 一个Access查询 即上述子表单的数据源 有两个参数 显示为 Par
  • 使用 SyndicateFeed 读取 SyndicateItem 中的非标准元素

    在 net 3 5 中 有一个 SyndicateFeed 可以加载 RSS 提要并允许您在其上运行 LINQ 以下是我正在加载的 RSS 示例
  • 谷歌云端点返回 java long 作为 JSON 中的字符串

    我正在使用 google app engine 最新版本 1 9 30 我定义我的云端点如下 Api name app version v1 transformers EndpointDateTransformer class public
  • 如何在 IE 10/11 中可靠地将 XML 转换为字符串?

    当使用 jQuery 解析 XML 并将其转换回字符串时 IE 10 和 IE 11 未正确保留命名空间 除了编写我自己的 stringify 代码之外 还有其他可接受的方法可以在 IE 10 11 中执行此操作吗 这是我正在使用的代码 我