jsdom:混合大小写解析

发布于 2024-12-22 10:17:17 字数 873 浏览 1 评论 0原文

我将 jQuery 与 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,但这不是一个可行的解决方案,因为我需要保留文本节点的原始大小写。

谢谢。

I'm using jQuery with jsdom (0.2.10). For some reason node.exe (0.6.5.1) never returns when dealing with HTML such as this one:

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

The parsing code is:

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.');    
    }
  });
});

Using same case for the tag names works as expected (i.e. node.exe returns). But since I have no control over HTML I'm parsing, I wonder if there is a way around this problem. Also, body.toLowerCase() helps in terminating node.exe, however it's not a viable solution because I need to preserve original case of the text nodes.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏九 2024-12-29 10:17:17

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

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

每行的

都会产生不同的结果。 这是我为感兴趣的人提出的拉取请求。

There is a bug in node-htmlparser module. Parsing

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

yields different results for each of the line.

Here's my pull request for those interested.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文