i am trying to read an attribute value from xml using nodejs code snippet and below is my xml Data. Trying to fetch environment QA or UAT. I wrote the code to parse the xml. Now the challenge is not able to understand this output format of console.log. Not sure which API have to be used get/read "name" attribute value.
Please help me to read the value of name attribute.
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="QA" ></testsuite>
<testcase status="success>"></testcase>
<testsuite name="QA2" ></testsuite>
<testcase status="success>"></testcase>
<testsuite name="UAT" ></testsuite>
<testcase status="success>"></testcase>
<testsuite name="UAT2" ></testsuite>
<testcase status="success>"></testcase>
<testsuite name="SandBox" ></testsuite>
<testcase status="success>"></testcase>
<testsuite name="SandBox" ></testsuite>
</testsuites>
`
const fs = require("fs");
const path = require("path")
const xml2js = require("xml2js")
let files;
let htmlobj = '<h3>Summary</h3><table><tr><th>Error Count</th></tr>'
files = fs.readdirSync(__dirname);
var parser = new xml2js.Parser();
let filecount = 0;
let counter = 0;
const junitfiles = {};
files.forEach(file => {
if (path.extname(file) != ".xml") return;
const extname = path.extname(file);
const filename = path.basename(file, extname);
const obsolutePath = path.resolve(__dirname, file);
fs.readFile(obsolutePath, function(err, data) {
if (err) {
console.log('error in readFile', err);
} else {
parser.parseString(data, function(err, result) {
if (err) {
console.log('error parsing', err)
}
else {
let resultvalue = 0;
let envcount = 0;
for (var i = 0; i < result.testsuites.testsuite.length; i++) {
resultvalue = result.testsuites.testsuite[i];
console.log('value of testsuite object', resultvalue);
}
}
});
}
});
});
`
Output of Node js code
value of testsuite object { '$': { name: 'QA' } }
value of testsuite object { '$': { name: 'QA2' } }
value of testsuite object { '$': { name: 'UAT' } }
value of testsuite object { '$': { name: 'UAT2' } }
value of testsuite object { '$': { name: 'SandBox' } }
value of testsuite object { '$': { name: 'SandBox' } }