libxmljs и node-o3-xml великолепны и быстры, но имейте в виду, что им обоим нужно компилировать двоичные компоненты.И если вы используете их для модуля, который будет использоваться другими, это предостережение будет еще более серьезным.
Взяв высокоуровневое представление на мгновение, помните, что узел является однопоточным.Таким образом, любой анализ XML, который вы делаете, блокирует процесс узла.Для меня это означает, что синтаксический анализ XML никогда не должен выполняться в том же процессе, что и основное приложение.Затем, когда вы перемещаете разбор XML в отдельный процесс, возможно, небольшая скорость может быть принесена в жертву в пользу простоты установки и большей переносимости.
Лично я поэтому использую sax.js - чистый синтаксический анализатор JavaScript SAX - в моей библиотеке feedparser (если вы анализируете каналы RSS / Atom / RDF, пожалуйста, попробуйте это сделать - комментарии и запросы извлечения приветствуются).И, честно говоря, при анализе чего-то такого большого, как RSS-канал, нет заметной разницы в скорости между sax.js и libxmljs.Если вы анализируете огромные XML-файлы, вы можете заметить разницу, я полагаю.Но даже тогда одна хорошая вещь в sax.js - потоковая передача.В отличие от libxmljs (последний, который я использовал), вы можете направить поток в sax.js вместо того, чтобы читать весь XML-документ в память.Если вы разбираете огромные файлы, вам это понравится!