1. 개요
Node.js에서 XML을 parse하기 위한 xml2js는 https://github.com/Leonidas-from-XIV/node-xml2js 에서 확인할 수 있습니다.
2. 설치
실제 설치는 아래와 같이 npm으로 하시면 되구요.
# ./npm install xml2js xml2js@0.4.9 node_modules/xml2js tqq sax@0.6.1 mqq xmlbuilder@2.6.4 (lodash@3.9.3)
일단 이러한 user.xml이라는 파일이 있다고 가정합니다.
<?xml version="1.0"?> <list> <user> <name>kim</name> <country>korea</country> </user> <user> <name>lee</name> <country>paris</country> </user> <user> <name>park</name> <country>indonesia</country> </user> <user> <name>choi</name> <country>mexico</country> </user> </list>
3. 테스트
이제 본격적으로 테스트를 시작하겠습니다. Node.js 소스 파일은 xmlParse.js입니다.
var xml2js = require('xml2js'); var parser = new xml2js.Parser(); var fs = require('fs'); var xml = fs.readFileSync(__dirname + '/user.xml', 'utf-8'); parser.parseString(xml, function(err, result) { console.log(result); });
실행결과.
# ./node xmlParse.js { list: { user: [ [Object], [Object], [Object], [Object] ] } }
console.log에서 찍는 result를 JSON.stringify() 처리합니다.
실행결과.
# ./node xmlParse.js {"list":{"user":[{"name":["kim"],"country":["korea"]},{"name":["lee"],"country":["paris"]},{"name":["park"],"country":["indonesia"]},{"name":["choi"],"country":["mexico"]}]}}
객체 수를 count하려면 length로 세면 됩니다. (result.list.user.length)
실행결과.
# ./node xmlParse.js Total User: 4 {"list":{"user":[{"name":["kim"],"country":["korea"]},{"name":["lee"],"country":["paris"]},{"name":["park"],"country":["indonesia"]},{"name":["choi"],"country":["mexico"]}]}}
end.