jsdom:混合大小写解析

时间:2011-12-20 18:24:18

标签: jquery node.js screen-scraping jsdom

我正在使用jsdom和jsdom(0.2.10)。出于某种原因,在处理HTML时,node.exe(0.6.5.1)永远不会返回:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head></HEAD>
  <body></BODY>
</HTML>

解析代码是:

var request = require('request'),
    jsdom = require('jsdom');

request({ uri:'http://localhost/test.html' }, function (error, response, body) {
  jsdom.env({
    html: body,
    scripts: ['http://code.jquery.com/jquery-1.7.1.min.js'],
    done: function (err, window) {
      var $ = window.jQuery;  
      console.log('node.exe should get terminated after this line but does not.');    
    }
  });
});

对标记名称使用相同的大小写按预期工作(即node.exe返回)。但由于我无法控制HTML我正在解析,我想知道是否有办法解决这个问题。此外,body.toLowerCase()有助于终止node.exe,但它不是一个可行的解决方案,因为我需要保留文本节点的原始情况。

谢谢。

1 个答案:

答案 0 :(得分:0)

node-htmlparser模块中存在错误。解析

<html><head></head><body>foo</body></html>
<html><head></HEAD><body>foo</BODY></HTML>

为每一行产生不同的结果。

Here是我对那些感兴趣的人的拉动请求。