如何将XML对象与jQuery/JavaScript合并
How to merge XML objects with jQuery / JavaScript
我想将不同XML文件的数据合并到一个大的XML树中。我的想法是将所有即将到来的节点附加到第一个XML文件的根节点。然而,当我试图调用"mergedXml.documentElement.appendChild"时,我得到了一个"TypeError"。这是我的代码:
var mergedXml = undefined;
$.each(files, function(index, value) {
$.ajax({
url: value,
cache: true,
async: false,
dataType: 'text',
success: function(data) {
var xmlDocument = $.parseXML(data);
if (typeof mergedXml === 'undefined') {
mergedXml = xmlDocument;
} else {
// New children
var childNodes = xmlDocument.documentElement.childNodes;
var children = childNodes.length;
for (var i = 0; i < children; i++) {
var node = childNodes[i];
// How to append these nodes to the mergedXml root?
// I tried:
// mergedXml.documentElement.appendChild(node);
// But then I get...
// TypeError: Argument 1 of Node.appendChild is not an object.
}
}
}
});
});
也许你能帮我?
我怀疑您收到的错误是由Node.appendChild从原始父节点中删除节点这一事实引起的,因此您试图访问已经不存在的节点。我建议将for
循环替换为while
循环:
var node;
while (xmlDocument.documentElement.hasChildNodes()) {
node = xmlDocument.documentElement.childNodes[0];
mergedXml.documentElement.appendChild(node);
}
完整解决方案:
var mergedXml = undefined;
$.each(files, function(index, value) {
$.ajax({
url: value,
cache: true,
async: false,
dataType: 'text',
success: function(data) {
var xmlDocument = $.parseXML(data);
if (typeof mergedXml === 'undefined') {
// Init XML collection
mergedXml = xmlDocument;
} else {
// Add new children to XML collection
var node;
while (xmlDocument.documentElement.hasChildNodes()) {
node = xmlDocument.documentElement.childNodes[0];
mergedXml.documentElement.appendChild(node);
}
}
if (index === files.length - 1) {
console.log('Total nodes in root: ' + mergedXml.documentElement.childNodes.length);
}
}
});
});
相关文章:
- jQuery/Javascript.toggleClass/.classList.toggle的特殊行为
- 学生搜索项目jquery/javascript
- jQuery/JavaScript在线公文包表单-打印样式表
- 如何在页面加载中使用Jquery/Javascript确定img源
- DataTables合并了两个独立表中的jQuery/Javascript函数
- 在 Jquery/Javascript 中使用多个 OR (||) 运算符时如何设置变量
- 如何在jquery+javascript中只在输入框中输入数字(使用regex)
- 在Jquery/Javascript中的Array中插入Textbox值
- 使用Jquery/Javascript替换CSS属性
- Jquery/Javascript:通过按下按钮显示数组中的随机图像
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 在for循环中未获取JQuery/JavaScript对象值
- 使用jQuery/Javascript在Facebook上发送消息
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- 使用jQuery+Javascript识别一个空文本节点
- jquery/javascript字符串中的撇号
- jQuery/Javascript在内容可编辑的当前段落后插入元素
- 在页面加载时激活jQuery/Javascript函数
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- Jquery/Javascript使用IF/ELSE语句更改img SRC