HTML::HeadParser version 2.14

by Hippo2000(2001/1/25)

HTML::HeadParserなのです。

なお内容等が間違っていたら修正します。ご連絡ください。


目次


名前

HTML::HeadParser - HTMLドキュメントの<HEAD>セクションを解析する


概要

 require HTML::HeadParser;
 $p = HTML::HeadParser->new;
 $p->parse($text) and  print "not finished";
 $p->header('Title')          # <title>....</title>にアクセスする
 $p->header('Content-Base')   # <base href="http://...";>にアクセスする
 $p->header('Foo')            # <meta http-equiv="Foo" content="...">にアクセスする

説明

HTML::HeadParser は特殊化された(そして軽量な) HTML::Parser です。それはHTMLドキュメントの<HEAD>...</HEAD> 部分だけを解析します。parse()メソッドは<BODY>要素また本文が見つかるとすぐにFALSEを返します。そしてこの後は再び呼び出すべきではありません。

HTML::HeadParser はヘッダ・オブジェクトへのリファレンスを保持し、パーサーはそのHTMLドキュメントで理解されたいくつかの<HEAD>セクションの要素と同じである、このヘッダ・オブジェクトを更新します。以下のヘッダフィールドが影響を受けます:

Content-Base:
<base href="..">要素により初期化される Content-Base ヘッダ
Title:
<title>...</title> 要素により初期化されるTitle ヘッダ
Isindex:
<head>内の<isindex> 要素があれば Isindex ヘッダが追加されます。このヘッダの値はもしあればprompt 属性により初期化されます。もしprompt属性がなkれば値として'?'を持ちます。
 
X-Meta-Foo:
すべての<meta>要素は"X-Meta-"という接頭辞をもったヘッダを初期化します。もし<meta>要素にhttp-equiv属性が入っていれば、それはヘッダ名になります。

メソッド

(上位クラスによって提供されているものに加えて)以下のメソッドが利用できます。

$hp = HTML::HeadParser->new( [$header] )
オブジェクト・コンストラクタ。オプションの$header引数はHTTP::Headers クラスにより定義されているようなheader()とpush_header()メソッドを実行しているオブジェクトへのリファレンスでなければなりません。通常はHTTP::Headersクラスの一種あるいはHTTP::Headersへの代理となるクラスになります。
 
$headerが与えられなければ、HTML::HeadParser はそれ自身で(内部的に空の)HTTP::Header を作成します。
 
$hp->header;
headerオブジェクトへのリファレンスを返します。
 
$hp->header( $key )
ヘッダの値を返します。$htp->header->header($key)を短くした書き方です。
 

 $h = HTTP::Headers->;new;
 $p = HTML::HeadParser->new($h);
 $p->parse(<<EOT);
 <title>Stupid example</title>
 <base href="http://www.sn.no/libwww-perl/";>
 Normal text starts here.
 EOT
 undef $p;
 print $h->title;   # "Stupid example"となるはず

参考資料

HTML::Parser, HTTP::Headers

HTTP::Headers クラスはlibwww-perl の一部として配布されています。


著作権(COPYRIGHT)

(原文のまま)

Copyright 1996-1999 Gisle Aas. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。