作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
使用 node v.0.10.29,Express v4.12.0 和 xmldom v0.1.19,我正在尝试执行以下操作:
<name>default</name>
字段到 <name>test</name>
问题是在我设置 <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
在字符串中...我认为序列化部分有问题?有人看到我做错了什么吗?
谢谢!!
最佳答案
我发现问题了!
我正在设置 nodeValue
但我确实需要设置 data
。所以我改变了
customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";
到
customerConfig.getElementsByTagName("name")[0].childNodes[0].data= "test";
然后成功了!
关于javascript - Node + xmldom : How do I change the value of a single XML field in javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32850812/
我是一名优秀的程序员,十分优秀!