gpt4 book ai didi

html - 使用 CSS3 嗅探文档类型,特别是使用 Mojo::DOM

转载 作者:可可西里 更新时间:2023-11-01 13:06:27 24 4
gpt4 key购买 nike

我可以使用 Mojo::DOM及其 CSS3 选择器来确定 HTML 文档的 DOCTYPE?与我的其他问题相关,How should I process HTML META tags with Mojo::UserAgent?我想在哪里设置文档的字符集,我需要知道要看什么和 doctype sniffing似乎是这样做的方法。当文档设置覆盖服务器设置(或非设置)时,HTML 和 HTML 5 对 HTML 中的字符集有不同的元标记。

我可以轻松完成任务,因为我可以获取原始响应并使用正则表达式来查看 DOCTYPE。 Since the browser DOMs seem to be able to get the DOCTYPE ,我感染了我应该能够得到它的想法。但是,由于缺乏示例,我认为没有人按照我认为应该做的方式去做。

我尝试了很多愚蠢的方法,但我的 CSS 功夫很弱:

use v5.20;

use feature qw(signatures);
no warnings qw(experimental::signatures);

use Mojo::DOM;

my $html = do { local $/; <DATA> };

my $dom = Mojo::DOM->new( $html );

say "<title> is => ", $dom->find( 'head title' )->map( 'text' )->each;

say "Doctype with find is => ", $dom->find( '!doctype' )->map( 'text' )->each;

say "Doctype with nodes is => ", $dom->[0];

__DATA__

<!DOCTYPE html>
<head>
<title>This is a title</title>
</head>
<body>
<h1>Level 1</h1>
</body>
</html>

当我转储 $dom 对象时,我在树中看到了 DOCTYPE:

$VAR1 = bless( do{\(my $o = bless( {
'tree' => [
'root',
[
'text',
'',
${$VAR1}->{'tree'}
],
[
'doctype',
' html',
${$VAR1}->{'tree'}
],

现在我该怎么做呢?

最佳答案

确定 HTML5 文档的编码非常 complex .恐怕Mojo::DOM只是一个片段解析器,因此我们决定编码嗅探算法的完整实现将超出范围。谢天谢地,大多数网络都是 UTF-8 编码的,我想这就是为什么这个问题不会经常出现的原因。

关于html - 使用 CSS3 嗅探文档类型,特别是使用 Mojo::DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com