鑒于此 XML 布局:
<config>
<Nightly>
<VersionNumber>1.10.0</VersionNumber>
</Nightly>
</config>
而這段代碼(基于這篇文章):
NewVersionNumber = '1.10.1';
fs.readFile("../config.xml", "utf-8", (err, data) => {
xml2js.parseString(data, (err, result) => {
result.config.Nightly.VersionNumber = NewVersionNumber;
const builder = new xml2js.Builder();
const xml = builder.buildObject(result);
fs.writeFile('../config.xml', xml, (err) => {
if (err) {
throw err;
}
});
});
我得到這個結果:
<config>
<Nightly>
<VersionNumber>1.10.0</VersionNumber>
</Nightly>
<Nightly>1.10.1</Nightly>
</config>
我究竟做錯了什么?目標是讓它更新config.Nightly.VersionNumber值。
uj5u.com熱心網友回復:
嘗試使用explicitArray:false引數:
xml2js.parseString(data, {explicitArray:false}, (err, result) => {
看這里:
顯式陣列(默認值:真):如果為真,則始終將子節點放入陣列中;否則,只有當有多個時才會創建一個陣列。
https://www.npmjs.com/package/xml2js#options
uj5u.com熱心網友回復:
所以我通過簡單地添加[0]到每個元素來解決這個問題:
result.config.Nightly[0].AppName[0] = message.AppName;
result.config.Nightly[0].VersionNumber[0] = message.VersionNumber;
result.config.Nightly[0].Branch[0] = message.Branch;
我將其發布為答案,因為它修復了它,但我希望看到其他答案或解釋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474966.html
上一篇:如何更改導航的顏色按鈕
