Разбор XML Libxmljs (Node.js) - PullRequest
       39

Разбор XML Libxmljs (Node.js)

10 голосов
/ 16 ноября 2010

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

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

1 Ответ

17 голосов
/ 16 ноября 2010

libxmljs поддерживает DOM, а также синтаксический анализ в стиле SAX.

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

API является пользовательским и не соответствует спецификации W3C / браузера (он в моем списке).Вы захотите использовать xpath для запроса документа на содержание, которое вам нужно.

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

Обратите внимание, что childNodes и текст являются вызовами функций.Посмотрите документы.

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

Насколько я знаю, libxmljs и jsdom - это две библиотеки, которые имеют достойные реализации DOM.

...