Невозможно извлечь фрагмент html с помощью cheerio

Я использую cheerio для выполнения некоторых манипуляций с html на сервере node js. У меня есть html-строка, подобная этой

var htmlString =" <ol>
  <li>
  <p>item1</p>
 </li>
 <li>
  <p>item2</p>
</li>
<li>
  <p>item 3</p>
</li>
   <li>
   <p>item 4</p>
</li>
</ol>
 <p>First paragraph</p>
<p>second paragraph</p>
<p>Third paragraph</p>
"

 var $ = cheerio.load(htmlString);
var dummy = $("<div></div>")
var item = dummy.append($("*").slice(0,3).clone()).html();

Возвращаемый результат

 <ol>
  <li>
  <p>item1</p>
 </li>
 <li>
  <p>item2</p>
</li>
<li>
  <p>item 3</p>
</li>
   <li>
   <p>item 4</p>
</li>
</ol>

<li>item1</li>
<p>item1</p>

Результат, который я ожидаю, это ordered list, за которым следует paragraph1, за которым следует paragraph2

Я что-то не так делаю или это баг чирио?


person Akshat Jiwan Sharma    schedule 30.06.2013    source источник


Ответы (1)


После целого дня возни с кодом я наконец нашел решение. Видимо я неправильно загружал html-фрагмент. Это сработало для меня

var $ = cheerio.load();
var dummy = $("<div></div>")
var item = dummy.append($(htmlString).slice(0,3)).html();
person Akshat Jiwan Sharma    schedule 30.06.2013