10

I'm attempting to parse an XML string with libxmljs (https://github.com/polotek/libxmljs). I'm having some issues though. I need to apply logic to what I'm parsing and return based upon what's defined and what isn't. Because of this I don't see a SAX-style parser being a valid option.

I'm willing to look at other alternatives if I can achieve what I'm looking for. Being able to select elements like DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue would be awesome...

1
  • I guess the README does focus on the sax parsing. Most people use the DOM stuff though. I'll update it to make it clear that DOM is possible and give examples. Commented Nov 16, 2010 at 19:37

1 Answer 1

17

libxmljs supports DOM as well as SAX style parsing.

var xmlDoc = libxmljs.parseXmlString('<item><data id="firstName">Your Name</data></item>');
var xmlDoc2 = libxmljs.parseXmlFile('mydata.xml');

The API is custom and doesn't follow the W3C/browser spec (it's on my list). You will want to use xpath to query the document for the content you want.

xmlDoc.find("//[@id='firstName']")[0].childNodes()[0].text()

Notice that childNodes and text are function calls. Take a look at the docs.

https://github.com/polotek/libxmljs/wiki/Element

As far as I know, libxmljs and jsdom are the two libraries that have decent DOM implementations.

Sign up to request clarification or add additional context in comments.

Comments

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.