Ответ 1
libxmljs поддерживает DOM, а также синтаксический анализ SAX.
var xmlDoc = libxmljs.parseXmlString('<item><data id="firstName">Your Name</data></item>');
var xmlDoc2 = libxmljs.parseXmlFile('mydata.xml');
API является обычным и не соответствует спецификации W3C/browser (это в моем списке). Вы захотите использовать xpath для запроса документа для содержимого, которое вы хотите.
xmlDoc.find("//[@id='firstName']")[0].childNodes()[0].text()
Обратите внимание, что childNodes и текст являются вызовами функций. Взгляните на документы.
https://github.com/polotek/libxmljs/wiki/Element
Насколько я знаю, libxmljs и jsdom - это две библиотеки, которые имеют достойные реализации DOM.