使用 JavaScript 从 XML 中删除子节点
remove child nodes from xml with javascript
我正在尝试从xml文件文本中读取并删除该文本所在的节点。例如,我从<en>
或<es>
节点读取文本,我需要删除这两个节点并将文本保存到<translation>
编辑前的 XML 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<books>
<name>
<translation>
<en>
Text 1
</en>
<es>
Text 2
</es>
</translation>
</name>
</books>
所以它应该看起来像这样:
<books>
<translation>
Text 1
</translation>
</books>
这是我函数的一部分,从<en>
读取文本后,我试图从<translation>
中删除所有子节点,但是当我使用 removeChild 方法时我卡住了并收到错误
var lang = 'en';
$.ajax({
type: "GET",
url: 'my.xml',
dataType: "xml",
success: function (xml) {
$(xml).find('translation').each(function () {
var text = $(this).find(lang).text();
});
$(xml).getElementsByTagName('translation').parentNode.removeChild();
// xml convert to json
var books = [];
var data = $.xml2json(xml)['#document'];
that.books = data.books;
}
});
我将不胜感激任何帮助。谢谢!
var value = [];
$.get("your.xml", function(d){
values.push($(d).find("en")[0].childNodes[0]); //push "Text 1" into array
$(d).find("en").remove(); //remove node
$(d).find("es").remove(); //remove node
$(d).find("translation").append(values[0]); //add "Text 1" to node
});
您遇到的问题是您尝试在此处使用 jQuery 对象作为 DOM 节点:
$(xml).getElementsByTagName('translation').parentNode.removeChild();
要使用jQuery,你可以这样做
$(xml).find('translation').remove();
但是,我认为您可能正在走上一条错误的道路。我看到您已经声明了一个未在代码中任何地方使用的var text
。您可能希望执行以下操作:
$xml = $(xml);
$xml.find('translation').each(function () {
$this = $(this);
$this.text($this.find(lang).text());
});
// do something with $xml...
我无法xml2json
工作,因为我不熟悉该插件,但它对您来说应该相对简单。
试过这个吗?
getElementsByTagName('translation').children().remove()
相关文章:
- 删除HTML节点而不删除其子节点
- jQuery如何用1行来附加html和删除子节点
- 如何在JavaScript中删除子节点触发点击事件时的父节点
- Kendo TreeView-只向没有子节点的父节点添加删除图像图标
- 使用 JavaScript 从 XML 中删除子节点
- jQuery - 如何循环删除仅某些子节点
- 如何从 Javascript 对象中删除所有子节点
- 从 JSON 中删除子节点
- 如何在 jstree 中删除所选节点的子节点
- 从react中的父dom节点中删除子组件
- 可以't删除所有子节点
- DOM Javascript正在删除子节点
- 如何使用jquery删除树视图子节点
- 删除子节点错误
- 删除子节点
- 如何查找父节点和删除子节点
- 删除子节点后,我无法重新运行函数本身
- 简单的onclick无法删除子节点
- 如何在JavaScript中删除子节点
- Firebase——批量删除子节点