【发布时间】:2015-12-27 08:05:49
【问题描述】:
使用node v.0.10.29、Express v4.12.0 和xmldom v0.1.19,我正在尝试执行以下操作:
步骤
- 将 XML 文件读入字符串
- 使用xmldom将字符串转换为XML对象
- 将
<name>default</name>字段设置为<name>test</name> - 将 XML 对象转换回字符串
问题
问题是我设置<name> 字段后,它在对象中设置正确,但是当我将其转换为字符串时,<name> 字段又恢复为旧值(错误) .
代码
代码如下:
var fs = require('fs');
var DOMParser = require('xmldom').DOMParser;
var XMLSerializer = require('xmldom').XMLSerializer;
var filename = "myFile.xml";
fs.readFile(filename, "utf-8", function (err,data)
{
//CREATE/PARSE XML OBJECT FROM STRING
var customerConfig = new DOMParser().parseFromString(data);
//SET VALUE TO "TEST" (<name>default</name> TO <name>test</name>)
customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";
//THIS OUTPUTS "test" WHICH IS CORRECT -
console.log(customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue);
//SERIALIZE TO STRING
var xmlString = new XMLSerializer().serializeToString(customerConfig);
//THIS OUTPUTS THE FULL XML FILE,
//BUT STILL SHOWS <name>default</name> AND NOT <name>test</name>
console.log(xmlString);
});
问题是字符串中的<name> 字段没有设置为test...我在想序列化部分有问题? 有人知道我做错了吗?
谢谢!!
【问题讨论】:
标签: javascript node.js xml-parsing xml-serialization domparser