我有一个XML文档,如下所示:
<Data id="1401" href="http://222222222">
<definition id="12218" href="http://11"></definition>
<Data-List count="1">
<DataStep type="3">
<completed_time>07/04/2017 17:18:11</completed_time>
<status>3</status>
</DataStep>
</Data-List>
<information>abcdefg</information>
</Data>
我想将information
数据abcdefg
更改为来自不同变量的不同字符串。
所以它看起来像这样:
<Data id="1401" href="http://222222222">
<definition id="12218" href="http://11"></definition>
<Data-List count="1">
<DataStep type="3">
<completed_time>07/04/2017 17:18:11</completed_time>
<status>3</status>
</DataStep>
</Data-List>
<information>example</information>
</Data>
这可以直接在Node JS中进行,而无需将此XML更改为json,修改它然后转换回XML吗?我试过这个但它似乎不起作用,在XML转换上创建了奇怪的数组和'$'。
关于我如何做到这一点的任何建议?
答案 0 :(得分:2)
我会使用cherriojs https://github.com/cheeriojs/cheerio。
这是jQuery的nodejs实现,因此DOM操作很容易。在文件的顶部,您必须在需要后设置xmlMode:true。
var $ = cheerio.load(your-xml-doc, {
xmlMode: true
});
然后你可以使用像
这样的东西$('information').text('example');
答案 1 :(得分:0)
1)您可以像普通字符串一样解析xml文档,查找带有正则表达式的信息标记并进行更改。
xml = xml.replace(/<information>[a-z0-9_-]*<\/information\>/, '<information>example</information>');
2)您可以使用某些模块(如xmldoc)来解析文档。 https://github.com/nfarina/xmldoc
let xmldoc = require('xmldoc');
let document = new xmldoc.XmlDocument(data.toString());
document.descendantWithPath('information').val = "example";