javascript - 如何从 jQuery.find() 结果创建 XMLDocument

标签 javascript jquery xml xml-serialization xmldocument

我使用 jQuery 的 $.ajax() 加载了两个 XML 文档并将每个文档序列化为字符串,执行了一些字符串操作,将两个字符串组合在一起,将它们包装在一个节点中,使用 $.find() 定位子节点,现在想将 $.find() 结果转换回 XMLDocument。

一个更简短的例子:

$.isXMLDoc(xmlDocument1); // returns true
$.isXMLDoc(xmlDocument2); // returns true

var xml1Str = (new XMLSerializer()).serializeToString(xmlDocument1);
var xml2Str = (new XMLSerializer()).serializeToString(xmlDocument2);

var xml1And2Str = "<root>" + xml1Str + xml2Str + "</root>";
var xml1And2Doc = $.parseXML(xml1And2Str);
$.isXMLDoc(xml1And2Doc); // returns true

var $oneNode = $(xml1And2Doc).find("oneNodeName");

在 xml1And2Doc 的某处有一个看起来像 <oneNodeName>...</oneNodeName> 的 xml 子元素。 .最后一个语句发现对我来说然后我可以成功使用它,然后我想把它转换成一个XMLDocument。如何转换 $oneNodeXMLDocument

有一些例子可以构建这个,但我相信我在这里遗漏了一些关于 jQuery 或 find() 结果的基本知识,这使我无法将其转换为 XMLDocument。

引用资料:

最佳答案

这是一个solution .在调用 $(xml1And2Doc).find("oneNodeName") 之后,您需要获取 jQuery 返回的数组中的第一个元素。这是一个片段:

var $oneNode = $(xml1And2Doc).find("oneNodeName")[0]; //finds and selects first object
var aString = (new XMLSerializer()).serializeToString($oneNode);

jQuery 默认返回 DOM 元素的集合 see .因此,使用 $oneNode[0] 可以访问第一个元素,但如果可能有多个元素,您可以这样做:

var $oneNodes = $(xml1And2Doc).find("oneNodeName"); //finds set of objects
$.each($oneNodes, function (index) {
    var aString = (new XMLSerializer()).serializeToString($oneNodes[index]);
});

关于javascript - 如何从 jQuery.find() 结果创建 XMLDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9117077/

相关文章:

javascript - Angular 2 奥特 : Zoneware (SystemJS) XHR error

javascript - 如何在按钮标签中添加条件? (vue.js 2)

javascript - 模糊事件发生在日期选择器填充字段之前

javascript - Ajax 表单 : new reset state

javascript - 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化非突出显示状态?

sql-server - 使用nodes()方法分解XML

javascript - React 中传递给元素 ref 的函数永远不会运行

python - 如何使用 lxml 创建文本节点?

python - 使用 ElementTree 解析 XML

javascript - 如何通过 slug 获取 Strapi,以及如何填充类别