Cheerio.js没有抓住非内联样式?

时间:2014-02-05 01:36:32

标签: javascript node.js cheerio

我目前正在使用node.js来刮取保存为.htm的word文档,然后将其重写为shell。

我创建了< li>标签,但这些word文档的保存方式我必须通过寻找margin-left来寻找它们。像这样:

$("p","td:nth-child(2)").each(function(){
   var marginLeft = this.css("margin-left");
}

到目前为止,我的工作非常好。我遇到的唯一麻烦就是风格实际上是通过一个类来应用的。

这是冲突的类:

p.RNBullet1, li.RNBullet1, div.RNBullet1{
   mso-style-name:"*RN Bullet1";
   mso-style-unhide:no;
   mso-style-link:"*RN Bullet1 Char";
   margin-top:0in;
   margin-right:0in;
   margin-bottom:0in;
   margin-left:.2in;
   text-indent:-.2in;
   mso-pagination:widow-orphan;
   mso-list:l12 level1 lfo5;
   font-size:11.0pt;
   font-family:"Arial","sans-serif";
   mso-fareast-font-family:"Times New Roman";
}

它将返回未定义的,当它显然有值时。

任何对此的见解都会对我在这里疯狂有所帮助。

1 个答案:

答案 0 :(得分:3)

正如vkurchatkin上面指出的,cheerio只是遍历DOM。它没有阅读样式表

这就是答案:https://npmjs.org/package/juice

基本上我装了cheerio用什么果汁回来了。

Juice会将styes变成内联。