2011-12-20 42 views
0

我用jsdom(0.2.10)使用jQuery。出于某种原因,node.exe(0.6.5.1)与HTML处理如当永远不会返回这一个:jsdom:混合大小写解析

<!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

你能给出一个你正在运行的jsdom代码的例子吗? – loganfsmyth 2011-12-20 19:26:20

+0

这可能是在jsdom的最新版本中修复的;我们已经完成了大量的HTML解析升级。 – Domenic 2013-09-10 12:53:23

回答

0

node-htmlparser模块有个bug。解析

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

对于每一行都会产生不同的结果。

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

相关问题