gpt4 book ai didi

javascript parseFromString 更改 xml 文档中元素的顺序

转载 作者:行者123 更新时间:2023-11-28 02:48:08 26 4
gpt4 key购买 nike

在我的系统中,我必须将一个大型 javascript ajax 系统移至 seam。我通过添加

使其正常工作
xml = (new DOMParser()).parseFromString(s, "text/xml");

现在我的问题是我刚刚注意到 domparser 由于某种原因改变了 xml 元素的顺序。我缩小了范围,必须是这个。由于这些元素在离开服务器时按特定顺序排序,因此 dom 解析器重新组织并不是一件好事。有人见过这个吗?有人知道如何解决吗?

最佳答案

我在 IE 9 RC 1 标准模式下遇到了这个问题,试图解决另一个问题(即使在标准模式下,XMLHttpRequest 对象也会返回 MSXML ActiveX 对象。功能检测发现 DOMParser 和两个文档不兼容)所以我认为使用 DOMParser 可以解决问题)

在 IE 9 RC 1 中重现问题的示例代码:

var sXML = "<TEST ID=\"124\" TITLE=\"TitleValue\" DATE=\"2011-02-24T00:00:00\" STATUS=\"Processing\" EMPNAME=\"Smith, Sam\" STATUSCODE=\"P\" ROWNUM=\"1\" />";

var dpParser = new DOMParser();
var xdDoc = dpParser.parseFromString(sXML, "text/xml");

var xsSerialize = new XMLSerializer();
var sNewXML = xsSerialize.serializeToString(xdDoc);

alert("Original XML:\n" + sXML + "\n\nNew XML:\n" + sNewXML);

警报的输出...

原始 XML:

<TEST ID="124" TITLE="TitleValue" DATE="2011-02-24T00:00:00" STATUS="Processing" EMPNAME="Smith, Sam" STATUSCODE="P" ROWNUM="1" />

新 XML:

<TEST ROWNUM="1" STATUSCODE="P" EMPNAME="Smith, Sam" STATUS="Processing" DATE="2011-02-24T00:00:00" TITLE="TitleValue" ID="124" />

更新: 我已向 Microsoft 提交了有关此问题的 IE 9 错误报告,他们已按照“设计”解决了该问题。

如果您在 IE 9 中使用 DOMParser.parseFromString 函数时希望 XML 属性按特定顺序排列,那么您将需要显式获取属性,而不是简单地迭代它们。

以下是错误报告: https://connect.microsoft.com/IE/feedback/details/645091/domparser-parsefromstring-in-ie-9-rc-1-rearranges-the-attributes-of-the-xml-node-passed-in

关于javascript parseFromString 更改 xml 文档中元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445153/

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