При парсинге файла xml2js выдает Undefined. Что не так?
Хочу переформатировать файл из xml в json средствами nodeJS.
const fs = require('fs');
const xml2js = require('xml2js');
const util = require('util');
const parser = new xml2js.Parser();
fs.readFile('sez.xml', (err, data) => {
parser.parseString(data, (err, result) => {
console.log(util.inspect(result, false, null, true));
});
});
Запускаю код из терминала командой:
node xml2json.js
Выдает
undefined
Что я делаю не так? Файл лежит в папке с скриптом. Может я неверно указываю путь?
Ответы (1 шт):
Автор решения: SilverF0x-web
→ Ссылка
В общем выяснилось, что в входном файле не должно быть лишних \n, \t и т.д., в случае если убрать все лишние символы, то все отрабатывает отлично.
const parser = require('xml2js');
const util = require('util');
const xmlToParse = `
<channel>
<title>Новости</title>
<link>https://sezinnopolis.ru</link>
<description></description>
<lastBuildDate>Thu, 28 Oct 2021 13:46:15 +0300</lastBuildDate>
<ttl>60</ttl>
<item>
<id>4054</id>
<title>На площадке ОЭЗ «Иннополис» при участии технопарка «Сколково» состоялась конференция Adventure Land Conf_Innopolis edition.</title>
<link>https://sezinnopolis.ru/novosti/na-ploshchadke-oez-innopolis-pri-uchastii-tekhnoparka-skolkovo-sostoyalas-konferentsiya-adventure-la/</link>
<description></description>
<preview_text></preview_text>
<detail_text>На площадке ОЭЗ «Иннополис» при участии технопарка «Сколково» состоялась конференция Adventure Land Conf_Innopolis edition. Ключевая цель - создания эффективного доступа к венчурному капиталу для стартап-комьюнити и дальнейшему выходу успешных стартапов к глобальному венчурному рынку. На конференции собрались перспективные стартап-команды и более 70 профессиональных экспертов венчурного рынка: бизнес-ангелы, представители венчурных фондов, основатели и участники инвестиционных синдикатов и сообществ, акселераторов, начинающие частные инвесторы. В конференции приняли участие лидеры венчурных сообществ, таких как: ANGELS DECK , PULSAR VC , VEB VENTURES, АК БАРС БАНК, STARTA VENTURES, STARTUP LAB , STARTECH VC, BESTSELLER COMPANY, ФРИИ, СБЕР, ТОЧКА БАНК и другие. В рамках панельной дискуссии, модератором которой выступил Василий Кузнецов, партнер венчурного фонда Starta VC, эксперты обсудили инструменты и форматы работы со стартапами ранних стадий. Во второй части конференции состоялась питч-сессия в рамках 14-го экспертного совета по стартапам ОЭЗ «Иннополис». Ярким аккордом стал объявление одного из стартапов - UseTech, о привлечении $11,3 млн инвестиций для развития своего продукта. По итогам питч-сессии было проведено 25 персональных встреч со стартапами а дискуссии экспертов и живое общение завязавшееся в деловой части, продолжилось и в кулуарах. Эксперты, инвесторы, бизнес-ангелы дали стартап-командам ценные советы и рекомендации по доработке проектов и проведению презентаций.</detail_text>
<enclosure url="https://sezinnopolis.ru/upload/iblock/e6c/5bjyvskwhu748i0lv46lzb8sk04l12m5.jpg" length="17413812" type="image/jpeg"/>
<pubDate>Thu, 28 Oct 2021 00:00:00 +0300</pubDate>
</item>
</channel>`;
parser.parseString(xmlToParse, function (err, result){
console.log(util.inspect(result, false, null, true));
});
На выходе получаем такое:
{
channel: {
title: [ 'Новости' ],
link: [ 'https://sezinnopolis.ru' ],
description: [ '' ],
lastBuildDate: [ 'Thu, 28 Oct 2021 13:46:15 +0300' ],
ttl: [ '60' ],
item: [
{
id: [ '4054' ],
title: [
'На площадке ОЭЗ «Иннополис» при участии технопарка «Сколково» состоялась конференция Adventure Land Conf_Innopolis edition.'
],
link: [
'https://sezinnopolis.ru/novosti/na-ploshchadke-oez-innopolis-pri-uchastii-tekhnoparka-skolkovo-sostoyalas-konferentsiya-adventure-la/'
],
description: [ '' ],
preview_text: [ '' ],
detail_text: [
'На площадке ОЭЗ «Иннополис» при участии технопарка «Сколково» состоялась конференция Adventure Land Conf_Innopolis edition. Ключевая цель - создания эффективного доступа к венчурному капиталу для стартап-комьюнити и дальне
йшему выходу успешных стартапов к глобальному венчурному рынку. На конференции собрались перспективные стартап-команды и более 70 профессиональных экспертов венчурного рынка: бизнес-ангелы, представители венчурных фондов, основател
и и участники инвестиционных синдикатов и сообществ, акселераторов, начинающие частные инвесторы. В конференции приняли участие лидеры венчурных сообществ, таких как: ANGELS DECK , PULSAR VC , VEB VENTURES, АК БАРС БАНК, STARTA VENTURE
S, STARTUP LAB , STARTECH VC, BESTSELLER COMPANY, ФРИИ, СБЕР, ТОЧКА БАНК и другие. В рамках панельной дискуссии, модератором которой выступил Василий Кузнецов, партнер венчурного фонда Starta VC, эксперты обсудили инструменты и форма
ты работы со стартапами ранних стадий. Во второй части конференции состоялась питч-сессия в рамках 14-го экспертного совета по стартапам ОЭЗ «Иннополис». Ярким аккордом стал объявление одного из стартапов - UseTech, о привле
чении $11,3 млн инвестиций для развития своего продукта. По итогам питч-сессии было проведено 25 персональных встреч со стартапами а дискуссии экспертов и живое общение завязавшееся в деловой части, продолжилось и в кулуарах. Эксперты
, инвесторы, бизнес-ангелы дали стартап-командам ценные советы и рекомендации по доработке проектов и проведению презентаций.'
],
enclosure: [
{
'$': {
url: 'https://sezinnopolis.ru/upload/iblock/e6c/5bjyvskwhu748i0lv46lzb8sk04l12m5.jpg',
length: '17413812',
type: 'image/jpeg'
}
}
],
pubDate: [ 'Thu, 28 Oct 2021 00:00:00 +0300' ]
}
]
}
}
В общем заранее нужно готовить необходимо xml файл, парсить сайт и напрямую пихать в xml2js вряд ли получится.
