使用Node.js解析XML文件:详细教程

本文将指导你使用Node.js和xml2js库解析XML文件。我们将使用一个示例XML文件,其中包含角色的默认技能设置,并演示如何提取相关信息。

问题

假设你有一个XML文件,其中包含以下数据:xml

你需要提取以下信息:

  • 种族* 性别* 职业* 主动技能ID列表* 被动技能ID列表

解决方案

我们可以使用xml2js库来解析XML数据。以下是如何使用它来实现此目标的方法:

  1. 安装xml2js库:

    bash npm install xml2js

  2. 编写代码:

    
    const xmlData = `<?xml version='1.0' encoding='utf-8'?>   <DefaultSkillSet>     <Default race='Human' gender='Male' class='Warrior' activeSkillIdList='11200;30300;40900;50300;80400;90200;100700;111100;120800;131000;161000;170700;181100;191100;200200;210500;220200;230600;240200;250100;260100;281000;290900;300900;310800;320100;330200;340100;350100;400100;410100;420100;20100;9010100;9100100;200001;9020100;60401301' passiveSkillIdList='10001;11010;11029;11039;11049;11050;11051;11052;11053;11054;19100;19101;19102' />   </DefaultSkillSet>`;
    
    function parseXML(xml) {     return new Promise((resolve, reject) => {       const parser = new xml2js.Parser();       parser.parseString(xml, (err, result) => {         if (err) {           reject(err);         } else {           resolve(result);         }       });     });   }
    
    parseXML(xmlData)     .then(result => {       const defaultSkillSet = result.DefaultSkillSet.Default[0];       const race = defaultSkillSet.$.race;       const gender = defaultSkillSet.$.gender;       const skillClass = defaultSkillSet.$.class;       const activeSkillIdList = defaultSkillSet.$.activeSkillIdList;       const passiveSkillIdList = defaultSkillSet.$.passiveSkillIdList;
    
        console.log('种族:', race);       console.log('性别:', gender);       console.log('职业:', skillClass);       console.log('主动技能ID列表:', activeSkillIdList);       console.log('被动技能ID列表:', passiveSkillIdList);     })     .catch(err => {       console.error(err);     });   ```
    
    这段代码首先定义了一个`parseXML`函数,该函数接受XML字符串作为输入,并返回一个Promise对象。Promise对象在解析完成后解析,并返回解析后的JavaScript对象。
    
    然后,我们调用`parseXML`函数,并在`.then()`方法中处理解析后的结果。我们从结果对象中提取所需的属性值,并将它们打印到控制台。
    
    

总结

使用xml2js库可以轻松地在Node.js中解析XML文件。通过遵循本教程中的步骤,你可以轻松地提取XML数据并将其用于你的应用程序中


原文地址: https://www.cveoy.top/t/topic/pHK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录