我正在尝试读取xml文件,然后将一些数据保存到数组中。然后我需要通过数组并将元素粘贴到特定节点。例如,这是我的xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<contact>
<name>
<header>
<de>Hallo</de>
<en>Hello</en>
</header>
</name>
<name>
<header>
<de>Welt</de>
<en>World</en>
</header>
</name>
</contact>
这就是我想要的:
<?xml version="1.0" encoding="UTF-8" ?>
<contact>
<name>
<header>
Hello
</header>
</name>
<name>
<header>
World
</header>
</name>
</contact>
当我需要插入标头节点数组值时,我遇到了问题。
$.ajax({
type: "GET",
url: '1.xml',
dataType: "xml",
success: function(xml) {
var values = [];
$(xml).find('header').each(function() {
var text = $(this).find(lang).text();
values.push(text);
});
$(xml).find('header').each(function() {
$(xml).find('de').remove();
$(xml).find('en').remove();
});
// this part where I have problem
$(xml).find('header').each(function() {
$.each(values, function(i, val) {
$(xml).find('header').append(val);
});
});
})
});
答案 0 :(得分:2)
您可以尝试使用此代替上一个循环:
(它将用(<header>
)的值替换父(<en>
)的内容
$(xml).find('header en').each(function() {
$(this).parent().html($(this).html());
});
答案 1 :(得分:1)
试试这个:
$(document).ready(function(){
var lang="de";
$.ajax({
type: "GET",
url: '1.xml',
dataType: "xml",
success: function (xml) {
var values = [];
$(xml).find('header').each(function () {
var text = $(this).find(lang).text();
values.push(text);
});
$(xml).find('header').each(function () {
$(xml).find('de').remove();
$(xml).find('en').remove();
});
// Replace the following changes
$(xml).find('header').each(function (i) {
var nodGen='<'+lang+'>' + values[i] + '</'+lang+'>';
$(this).append(nodGen);
});
// Show new XML
alert((new XMLSerializer()).serializeToString(xml));
}
});
});