Подтвердить что ты не робот

Любая рекомендация для xml для json для Node.js?

Я установил node -xml, но я не думаю, что он работает так, как я ожидаю. и у него нет примера. любая рекомендация для xml-2-json (js) для node.js? Я также посмотрел xml2js в npm, но он устарел, и люди сообщили, что он поврежден с последним node.js

Кстати, я также использую экспресс.:)

4b9b3361

Ответ 1

Есть много xml parsers.

Как libxmljs и node-o3-xml. Последний создан и используется Ajax.org, поэтому он должен быть стабильным.

Что касается преобразования XML в JSON, я бы рекомендовал создать структуру объекта из вашего xml и затем вручную вызвать JSON.stringify на нем. Это дает вам полный контроль над тем, как ваши XML-данные превращаются в JSON.

Затем вы можете либо сохранить JSON в файле /DB, либо передать его в запрос.

Ответ 2

libxmljs и node-o3-xml отлично и быстро, но будьте осторожны, что они оба должны скомпилировать двоичные компоненты. И если вы используете их для модуля, который будет использоваться другими, это предупреждение еще более серьезное.

На мгновение взглянув на более высокий уровень, помните, что node является однопоточным. Таким образом, любой разбор XML, который вы делаете, блокирует процесс node. Для меня это означает, что синтаксический анализ XML никогда не должен выполняться в том же процессе, что и основное приложение. Затем, как только вы перейдете XML-анализ к отдельному процессу, возможно, небольшая скорость может быть принесена в жертву в пользу простоты установки и большей переносимости.

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

Ответ 3

Как вы видите, что xml2js устарел? Он имеет недавнюю деятельность (по состоянию на март 2013 года) и отлично справился с node 0,8.

Я использую его и доволен этим!

Ответ 4

sblom указал вне JsonML, которые также могут быть приняты во внимание. Не уверен в поддержке JsonML в nodejs, но здесь уже есть плагин jQuery.

Ответ 6

Как указывает другой плакат, node -xmltojs, вероятно, лучший способ.

Если вы хотели использовать JSONML, я не уверен, почему плагин JQuery в другом ответе поддерживается: there JSONML для node:

npm install jsonml

Пример:

var fs = require('fs'),
  parse = require('jsonml').parse;

var jsonML = parse(fs.readFileSync('myfile.xml'));

Ответ 7

easyxml - безусловно, мой любимый. Мне нравится, как он автоматически расширяет массивы.