Проанализируйте дочерние атрибуты элемента с помощью cheerio в NodeJS

#node.js #cheerio

#node.js #ура!

Вопрос:

У меня есть файл svg, который выглядит так

 lt;svg version="1.0" xmlns="http://www.w3.org/2000/svg"  width="300.000000pt" height="226.000000pt" viewBox="0 0 300.000000 226.000000"  preserveAspectRatio="xMidYMid meet"gt;  lt;g transform="translate(0.000000,226.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"gt;  lt;path d="M891 2162 c-95 -33 -418 -606 -616 -1092 -75 -185 -106 -330 -70 -67 -2 3 7 36 19 75 13  27 67 2 -3 -7 -36 -19 -75z"/gt;  lt;path d="M1316 2019 c-33 -39 -8035 -57 -37 -58 -82 -59 -25 0 -55 -2 -66 -4 -11 -2 -58 -8 -104  -15 -158 -22 -330 -77 -315 -101 10 -17 85 -5 311 51 -12 -15 -27z"/gt;  lt;path d="M925 1349 c-4 -6 -5 -12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z"/gt;  lt;/ggt; lt;/svggt;  

Я хочу получить атрибут d каждого элемента пути и объединить его в одну строку пути svg (которая состоит из всех трех путей). Я пробовал это покупать только первый раз каждый раз

 fs.readFile(path_to_svg,'utf8',(err,data)=gt;{  if(err) console.log(err);  $ = cheerio.load(data,{ xmlMode : true });  $('svg').children().each(function(i,path){  console.log($('path').attr('d'))  });  });  

Ответ №1:

Вы можете получить их с:

 $('svg path').get().map(path =gt; $(path).attr('d'))