【问题标题】:How to remove and update a XML tag in xml2js如何在 xml2js 中删除和更新 XML 标签
【发布时间】:2017-01-06 14:54:13
【问题描述】:

如何通过xml2js编辑XML文件

const fs = require('fs');
const xml2js = require('xml2js');
var fn = 'file.xml';
fs.readFile(fn, function(err, data) {
   parser.parseString(data, function(err, result) {
       //result.data[3].removeChild(); ?????
       //result.date[2].name.innerText = 'Raya'; ?????
   });
});

这行不通!

【问题讨论】:

  • data 是一个 JavaScript 对象,而不是 DOM 树。见this

标签: node.js xml2js


【解决方案1】:

要从 JavaScript 对象中删除属性,只需将该属性设置为未定义:

result.name = undefined;

来自 xml2js 的结果:

{
    "name": "I will get deleted",
    "items": [
        {
            "itemName": "Item 1",
            "itemLocation": "item1.htm"
        },
        {
            "itemName": "Item 2",
            "itemLocation": "item2.htm",
        }
    ]
}

设置为未定义后:

{
    "items": [
        {
            "itemName": "Item 1",
            "itemLocation": "item1.htm"
        },
        {
            "itemName": "Item 2",
            "itemLocation": "item2.htm",
        }
    ]
}

对你来说,这将是

result.data[3] == undefined;

提示:您可以使用 JSON.stringify 来帮助您。

【讨论】:

  • 如果您有兴趣在维护子标签的同时删除父标签怎么办?假设您有 我想删除 但继续拥有 .. 以下方法不起作用。
  • 您可以尝试使用简单的查找和替换或正则表达式替换,并将值分配回属性(就像我在上面所做的那样)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多