Parse XML Libxmljs (Node.js)

Я пытаюсь разобрать XML-строку с libxmljs (https://github.com/polotek/libxmljs). Однако у меня есть некоторые проблемы. Мне нужно применить логику к тому, что я разбираю и возвращаю, основываясь на том, что определено, а что нет. Из-за этого я не вижу, чтобы синтаксический анализатор SAX был допустимым.

Я хочу посмотреть на другие альтернативы, если я смогу добиться того, что я ищу. Возможность выбора таких элементов, как DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue, была бы удивительной...

Ответ 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.