如何使用node.js上的cheerio检索所有文本,包括“非中间”html标签?

时间:2016-07-25 22:22:07

标签: javascript jquery html node.js

请考虑以下HTML内容:

I like <div>turtles, </div><b> cookies</b> and brownies.

我使用下面的代码来检索内容:

 txt=$.root().find('*').contents().filter(function() {
            if (this.type === 'text'){
              varArr.push(this.data);
              return this.data
            } 
    }).text();

txt是:海龟,饼干

如果我添加标签

<html>I like <div>turtles, </div><b> cookies</b> and brownies</html> 

我得到: 我喜欢和布朗尼。海龟,饼干

我想: 我喜欢海龟,饼干和布朗尼蛋糕。

它不会选择不在标签之间的初始和最后文本。有没有办法检索所有文本 - 外部和嵌套在html标签上?)

1 个答案:

答案 0 :(得分:0)

我最终转换原始字符串以检索所需的值。我正在检查字符串是否以html标记开头或结尾。如果没有,我添加了一个tmp标签。 即:

  $sql = "SELECT * FROM employe WHERE date='ALL' AND reason='ALL' AND month='$month' ";
  $result = mysqli_query($conn, $sql);

在此之后,我删除了tmp标签。