Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在node js中将数据写入xml文件_Xml_Node.js_Node Modules - Fatal编程技术网

如何在node js中将数据写入xml文件

如何在node js中将数据写入xml文件,xml,node.js,node-modules,Xml,Node.js,Node Modules,我的xml文件 <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>XpertDox Home Page</title> <link>http://www.xpertdox.com</link> <description>Find a doctor</descrip

我的xml文件

   <?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
      <title>XpertDox Home Page</title>
  <link>http://www.xpertdox.com</link>
    <description>Find a doctor</description>
<item>
<title>Xpertdox</title>
<link>http://www.xpertdox.com/rss.xml</link>
<description>Find an Xpert Doctor for an unknown Disease</description>
</item>

  I want  to  add this
    <item>
<title>Tony</title>
<link>startk</link>
<description>hi</description>
</item>

我想替换我在obj中声明的标题标签和链接,但这不起作用。任何人都可以更改我的代码吗……。

在谷歌上偶然发现这篇文章,我在寻找一些稍有不同的东西,但在这里,我的这段代码应该可以为任何其他看到这篇文章的人解决这个问题

function xmlFileToObject(path) {
    return new Promise((resolve,reject) => {
        getFile(path).then(xml => {
            parseXml(xml).then(result => {
                resolve(result);
            });
        });
    });
}
function getFile(path) {
    return new Promise((resolve, reject) => {
        fs.readFile(path, 'utf8', function (err,data) {
            if (err) console.error(err);
            resolve(data);
        });
    });
}
function parseXml(xml) {
    return new Promise((resolve,reject) => {
        var parseString = require('xml2js').parseString;
        parseString(xml, function (err, result) {
            resolve(result);
        });
    });
}
谢谢你,沙德。 更多E6公约: `


`

您能指定您遇到的错误/意外行为吗?我是否正确理解您的意思,您想从文件中读取xml,替换文件中的
标题
链接
值,然后将其写回文件?您好,由于打开文件的权限被拒绝,我收到了错误。当我创建新对象时,它将覆盖旧对象
function xmlFileToObject(path) {
    return new Promise((resolve,reject) => {
        getFile(path).then(xml => {
            parseXml(xml).then(result => {
                resolve(result);
            });
        });
    });
}
function getFile(path) {
    return new Promise((resolve, reject) => {
        fs.readFile(path, 'utf8', function (err,data) {
            if (err) console.error(err);
            resolve(data);
        });
    });
}
function parseXml(xml) {
    return new Promise((resolve,reject) => {
        var parseString = require('xml2js').parseString;
        parseString(xml, function (err, result) {
            resolve(result);
        });
    });
}
const getFile = dir => new Promise((resolve, reject) => {
  fs.readFile(dir, 'utf8', (err, data) =>
    (err ? reject(err) : resolve(data)));
});

const parseXml = xml => new Promise((resolve, reject) => {
  require('xml2js').parseString(xml, (err, result) =>
    (err ? reject(err) : resolve(result)));
});

const xmlFileToObject = dir => getFile(dir)
  .then(xml => parseXml(xml))
  .then(result => console.log(result))
  .catch(e => console.error(e));