Javascript 在节点JS中使用fs extra更新xml文件
我想读取特定的xml标记并更新它 这是xml文件Javascript 在节点JS中使用fs extra更新xml文件,javascript,xml,node.js,fs,Javascript,Xml,Node.js,Fs,我想读取特定的xml标记并更新它 这是xml文件 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <widget id="com.ionicframework.myapp450442" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <nam
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.myapp450442" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>myApp</name>
<description>
An Ionic Framework and Cordova project.
</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">
Ionic Framework Team
</author>
<content src="index.html"/>
<access origin="*"/>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="BackupWebStorage" value="none"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
</widget>
myApp
爱奥尼亚框架和科尔多瓦项目。
但这对我不起作用
这是我使用的代码
fs.readFile(configFile, 'utf-8',function(err, data) {
if (err) {
return console.log(err);
}
var name="<name>"+appName+"</name>";
var cursor = "//cursor";
var result = data.replace(/\/\/cursor/,name);
fs.writeFile(configFile, result, 'utf-8', function(err) {
if (err) return console.log(err);
});
fs.writeFile(appIconFile, icon, 'base64', function(err) {
if (err) return console.log(err);
});
});
fs.readFile(配置文件,'utf-8',函数(错误,数据){
如果(错误){
返回console.log(err);
}
var name=”“+appName+”;
var cursor=“//cursor”;
var result=data.replace(/\/\/cursor/,name);
fs.writeFile(配置文件,结果,'utf-8',函数(err){
if(err)返回console.log(err);
});
fs.writeFile(appIconFile,图标,'base64',函数(err){
if(err)返回console.log(err);
});
});
谁能告诉我这里有什么问题吗
有更好的npm模块吗?您可以将XML解析为JSON,替换需要,然后保存回XML
例如,查看模块:
您可以将XML解析为JSON,替换需要,然后保存回XML
例如,查看模块:
stdob的回答有细微变化
var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser(),
xmlBuilder = new xml2js.Builder();
fs.readFile(configFile, function(err, data) {
parser.parseString(data, function (err, result) {
console.log(result)
result.widget.name = ['new name'];
var xml = xmlBuilder.buildObject(result);
fs.writeFile(configFile, xml);
});
});
他使用了不必要的模块 stdob的答案有微小变化
var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser(),
xmlBuilder = new xml2js.Builder();
fs.readFile(configFile, function(err, data) {
parser.parseString(data, function (err, result) {
console.log(result)
result.widget.name = ['new name'];
var xml = xmlBuilder.buildObject(result);
fs.writeFile(configFile, xml);
});
});
他使用了不必要的模块 我可以得到小部件版本吗?我可以得到小部件版本吗。。?