0

私はjsdom(0.2.10)でjQueryを使用しています。何らかの理由で、次のような 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 の終了にも役立ちますが、テキスト ノードの元の大文字と小文字を保持する必要があるため、実行可能な解決策ではありません。

ありがとうございました。

4

1 に答える 1

0

モジュールにバグがありnode-htmlparserます。解析中

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

行ごとに異なる結果が得られます。

興味のある方へのプルリクエストはこちらです。

于 2011-12-27T00:19:37.873 に答える