【问题标题】:Create multiple XML files in Node Js在 Node Js 中创建多个 XML 文件
【发布时间】:2020-03-05 11:15:36
【问题描述】:

我是 Node Js 的新手。我找不到这个问题的解决方案:我必须使用 for 循环来更改 XML 并创建一个新的。它已经给了我一个新的 XML 文件,但最后我想要十个新的 XML 文件。我希望我的解释不会太糟糕。

for (t = 0; t < 10; t++) {
  for (let i = 0; i < homeTeamStarting11.length; i++) {
    homeTeamStarting11[i] = homeTeamStarting11[i];
    let roleHome = homeTeamStarting11[i].role['$t']; //string
    let roleAway = awayTeamStarting11[i].role['$t'];
    let currentPosition = homeTeamStarting11[i].position;
    let currentPositiontwo = awayTeamStarting11[i].position;
    if (roleHome === 'GOALKEEPER' || roleAway === 'GOALKEEPER') {

    } else if (roleHome === 'DEFENSE' || roleAway === 'DEFENSE') {
      currentPosition['y']['$t'] = Math.floor(Math.random() * 80) + 3;
      currentPositiontwo['y']['$t'] = Math.floor(Math.random() * 80) + 3;

      currentPosition['x']['$t'] = Math.floor(Math.random() * 80) + 3;
      currentPositiontwo['x']['$t'] = Math.floor(Math.random() * 80) + 3;
    } else {
      currentPosition['y']['$t'] = Math.random() * (90 - 1) + 1;
      currentPositiontwo['y']['$t'] = Math.random() * (90 - 1) + 1;
      currentPosition['x']['$t'] = Math.random() * (90 - 1) + 1;
      currentPositiontwo['x']['$t'] = Math.random() * (90 - 1) + 1;
    }

    homeTeamStarting11[i].position = currentPosition;
    //awayTeamStarting11[i].position = currentPositiontwo;

    //const TeamTogether = homeTeamStarting11.concat(awayTeamStarting11);


    json['lineup']['away']['startingEleven']['persons']['player'] = awayTeamStarting11;
    json['lineup']['home']['startingEleven']['persons']['player'] = homeTeamStarting11;


  }
  const Name = JSON.stringify(json);
  const xml = parser.toXml(Name);
  let xjz = getFilename(2);
  fs.writeFile('xmls/' + xjz + '.xml', xml, function(err, data) {

  });

  function getFilename(anyNumber) {
    let filename = 'xmlfilename' + anyNumber;
    return filename;
  }

}

【问题讨论】:

    标签: node.js json xml loops


    【解决方案1】:

    您使用常量2 调用您的getFilename() 函数。因此,每次运行 for (t = 0; t &lt; 10; t++) { ... } 循环都会覆盖同一个文件。

    尝试使用let xjz = getFilename(t); 每次获取不同的文件名。

    【讨论】:

    • 哇,非常感谢,我已经完成了,它可以工作了。
    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2015-08-14
    相关资源
    最近更新 更多