我有一个如下所示的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转换中创建了奇怪的数组和'$‘。
对如何做到这一点有什么建议吗?
发布于 2017-07-05 02:25:22
我使用cherriojs https://github.com/cheeriojs/cheerio。
它是jQuery的nodejs实现,所以DOM操作很简单。在文件的顶部,您必须在需要xmlMode:true之后设置它。
var $ = cheerio.load(your-xml-doc, {
xmlMode: true
});然后你可以使用像这样的东西
$('information').text('example');发布于 2017-07-05 02:22:52
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";https://stackoverflow.com/questions/44912045
复制相似问题