2016-08-04 10 views
1

私のxmlファイル内のXMLファイルにデータを書き込む方法ノードJS

<?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> 

私のNode.js

私のように私のタイトルタグとリンクを交換したい
var obj = {title: "Tony", link: "Stark" , "description":"hi"}; 
var fs = require('fs'); 
var xml2js = require('xml2js'); 

var builder = new xml2js.Builder(); 
var xml = builder.buildObject(obj); 

fs.writeFile('feed.xml', xml, function (err){ 
if (err) throw err; 
    console.log('It\'s saved!'); 
}); 

私のobjで宣言されていますが、これはうまくいきません。誰かが私のコードを変更してください........

+0

エラー/予期しない動作を指定できますか? –

+0

私はあなたを正しく理解しましたか?ファイルからxmlを読み込み、その中の 'title'と' link'値を置き換えてファイルに書き戻したいのですか? –

+0

こんにちはdeepdownunder、私はアクセス権を拒否されたファイルとしてエラーを取得しています。 – MMR

答えて

0

このポストにぶつかりましたグーグルでは、私は少し違ったものを探していましたが、ここで私のこのコードは、この問題を、この投稿に出会う他の誰かのために解決するはずです。

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); 
     }); 
    }); 
}