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 ├── sax@0.6.1 └── 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.