首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Node JS更改XML数据值

使用Node JS更改XML数据值
EN

Stack Overflow用户
提问于 2017-07-05 02:16:09
回答 2查看 4.2K关注 0票数 2

我有一个如下所示的XML文档:

代码语言:javascript
复制
 <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更改为来自不同变量的另一段字符串。

所以看起来是这样的:

代码语言:javascript
复制
 <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转换中创建了奇怪的数组和'$‘。

对如何做到这一点有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-05 02:25:22

我使用cherriojs https://github.com/cheeriojs/cheerio

它是jQuery的nodejs实现,所以DOM操作很简单。在文件的顶部,您必须在需要xmlMode:true之后设置它。

代码语言:javascript
复制
var $ = cheerio.load(your-xml-doc, {
          xmlMode: true
        });

然后你可以使用像这样的东西

代码语言:javascript
复制
$('information').text('example');
票数 1
EN

Stack Overflow用户

发布于 2017-07-05 02:22:52

1)您可以像解析普通字符串一样解析您的xml文档,使用正则表达式找到信息标签并对其进行更改。

代码语言:javascript
复制
xml = xml.replace(/<information>[a-z0-9_-]*<\/information\>/, '<information>example</information>');

2)您可以使用一些模块来解析文档,比如xmldoc。https://github.com/nfarina/xmldoc

代码语言:javascript
复制
let xmldoc = require('xmldoc');
let document = new xmldoc.XmlDocument(data.toString());
document.descendantWithPath('information').val = "example";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44912045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档