13

I am trying to parse and query for an element within an xml using xml2js. My xml string is as follows:

var xml = "<config><test>Hello</test><data>SomeData</data></config>";

What I want is to extract the value in and assign it to var extractedData

Here's what I have so far:

var parser = new xml2js.Parser();
parser.parseString(xml, function(err,result){
  //Extract the value from the data element
  extractedData = result['data'];
}

This does not work. Can somebody point out how I might be able to grab the values from my xml?

Thanks

This doesn't seem to be working. Can somebody tell me what might be the issue here?

1 Answer 1

32

it works for me

var xml2js = require('xml2js');
var xml = "<config><test>Hello</test><data>SomeData</data></config>";

var extractedData = "";
var parser = new xml2js.Parser();
parser.parseString(xml, function(err,result){
  //Extract the value from the data element
  extractedData = result['config']['data'];
  console.log(extractedData);
});
console.log("Note that you can't use value here if parseString is async; extractedData=", extractedData);

result:

SomeData
Note that you can't use value here if parseString is async; extractedData= SomeData
Sign up to request clarification or add additional context in comments.

3 Comments

How can I print data which is in 5 or 6 level of depth
@Vishwanathgowdak use util.inspect(); see the accepted answer here for a quick example: stackoverflow.com/questions/10729276/… Here's a quick and dirty approach: console.log(require('util').inspect(result, false, null));
Note that it is possible to use await with let result = await parser.parseStringPromise(xml);. See npmjs.com/package/xml2js#promise-usage

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.