---
name: "PSP::HTML::HeadParser"
section: "3pm"
platform: "linux"
package: "libpsp-html-parser-perl"
version: "0.5.5.dfsg.1-0.1+b1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/PSP::HTML::HeadParser"
---

# PSP::HTML::HeadParser(3pm)

Parse \<HEAD\> section of a HTML document

## NAME

PSP::HTML::HeadParser - Parse \<HEAD\> section of a HTML document

## SYNOPSIS

```
 require PSP::HTML::HeadParser;
 $p = PSP::HTML::HeadParser->new;
 $p->parse($text) and  print "not finished";
 $p->header('Title')          # to access <title>....</title>
 $p->header('Content-Base')   # to access <base href="http://...">
 $p->header('Foo')            # to access <meta http-equiv="Foo" content="...">
```

## DESCRIPTION

The *PSP::HTML::HeadParser* is a specialized (and lightweight) *PSP::HTML::Parser* that will only parse the \<HEAD\>...\</HEAD\> section of an HTML document.  The *parse()* method will return a FALSE value as soon as some \<BODY\> element or body text are found, and should not be called again after this.

The *PSP::HTML::HeadParser* keeps a reference to a header object, and the parser will update this header object as the various elements of the \<HEAD\> section of the HTML document are recognized.  The following header fields are affected:

- Content-Base:

  The *Content-Base* header is initialized from the \<base href="..."\> element.

- Title:

  The *Title* header is initialized from the \<title\>...\</title\> element.

- Isindex:

  The *Isindex* header will be added if there is a \<isindex\> element in the \<head\>.  The header value is initialized from the *prompt* attribute if it is present.  If no *prompt* attribute is given it will have '?' as the value.

- X-Meta-Foo:

  All \<meta\> elements will initialize headers with the prefix "`"X-Meta-"`" on the name.  If the \<meta\> element contains a `"http-equiv"` attribute, then it will be honored as the header name.

## METHODS

The following methods (in addition to those provided by the superclass) are available:

- $hp = PSP::HTML::HeadParser-\>new( \[$header\] )

  The object constructor.  The optional `$header` argument should be a reference to an object that implement the *header()* and *push\_header()* methods as defined by the *HTTP::Headers* class.  Normally it will be of some class that isa or delegates to the *HTTP::Headers* class.

  If no `$header` is given *PSP::HTML::HeadParser* will create an *HTTP::Header* object by itself (initially empty).

- $hp-\>header;

  Returns a reference to the header object.

- $hp-\>header( `$key )`

  Returns a header value.  It is just a shorter way to write `"$hp->header->header($key)"`.

## EXAMPLE

```
 $h = HTTP::Headers->new;
 $p = PSP::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;   # should print "Stupid example"
```

## SEE ALSO

PSP::HTML::Parser, HTTP::Headers

The *HTTP::Headers* class is distributed as part of the *libwww-perl* package.

## 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.

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 218:

  You forgot a '=back' before '=head1'
