HTML::Microformats::Format::XOXO(3) the XOXO microformat

SYNOPSIS


use HTML::Microformats::DocumentContext;
use HTML::Microformats::Format::XOXO;
my $context = HTML::Microformats::DocumentContext->new($dom, $uri);
my @objects = HTML::Microformats::Format::XOXO->extract_all(
$dom->documentElement, $context);
my $list = $objects[0];

# Let's assume this structure:
#
# <ol class="xoxo people">
# <li>
# <a href="http://tobyinkster.co.uk/">Toby Inkster</a>
# <dl>
# <dt>Eye colour</dt>
# <dd>Blue</dt>
# <dt>Hair colour</dt>
# <dd>Blonde</dt>
# <dd>Brown</dt>
# </dl>
# </li>
# </ol>

print $list->data->as_array->[0]->get_link_title;
# Toby Inkster
print $list->data->as_array->[0]->get_properties
->get_value('Eye colour')->[0];
# Blue
print join '-', $list->data->as_array->[0]
->get_value('Hair colour');
# Blonde-Brown

DESCRIPTION

HTML::Microformats::Format::XOXO inherits from HTML::Microformats::Format. See the base class definition for a description of property getter/setter methods, constructors, etc.

Unlike most of the modules in the HTML::Microformats suite, the "data" method returns an HTML::Microformats::Format::XOXO::UL, HTML::Microformats::Format::XOXO::OL or HTML::Microformats::Format::XOXO::DL object, rather than a plain hashref.

HTML::Microformats::Format::XOXO::DL

Represents an HTML DL element.
"$dl->get_values($key)"
Treating a DL as a key-value structure, returns a list of values for a given key. Each value is an HTML::Microformats::Format::XOXO::DD object.
"$dl->as_hash"
Returns a hash of keys pointing to arrayrefs of values, where each value is an HTML::Microformats::Format::XOXO::DD object.
"$dl->as_array"
Logically what you think get_values(``*'') might do.

HTML::Microformats::Format::XOXO::UL

Represents an HTML UL element.
"$ul->as_array"
Returns an array of values, where each is a HTML::Microformats::Format::XOXO::LI object.

HTML::Microformats::Format::XOXO::OL

Represents an HTML OL element.
"$ol->as_array"
Returns an array of values, where each is a HTML::Microformats::Format::XOXO::LI object.

HTML::Microformats::Format::XOXO::LI

Represents an HTML LI element.
"$li->get_link_href"
Returns the URL linked to by the first link found within the item.
"$li->get_link_rel"
Returns the value of the rel attribute of the first link found within the item. This is an unparsed string.
"$li->get_link_type"
Returns the value of the type attribute of the first link found within the item. This is an unparsed string.
"$li->get_link_title"
Returns the value of the rel attribute of the first link found within the item if present; the link text otherwise.
"$li->get_text"
Returns the value of the text in the LI element except for the first DL element within the LI, and the first UL or OL element.
"$li->get_html"
Returns the HTML code in the LI element except for the first DL element within the LI, and the first UL or OL element.
"$li->get_properties"
Returns an HTML::Microformats::Format::XOXO::DL object representing the first DL element within the LI.
"$li->get_children"
Returns an HTML::Microformats::Format::XOXO::OL or HTML::Microformats::Format::XOXO::UL object representing the first OL or UL element within the LI.
"$li->get_value($key)"
A shortcut for "$li->get_properties->get_values($key)".

HTML::Microformats::Format::XOXO::DD

This has an identical interface to HTML::Microformats::Format::XOXO::LI.

MICROFORMAT

HTML::Microformats::Format::XOXO supports XOXO as described at <http://microformats.org/wiki/xoxo>.

RDF OUTPUT

XOXO does not map especially naturally to RDF, so this module returns the data as a JSON literal using the property <http://open.vocab.org/terms/json>.

BUGS

Please report any bugs to <http://rt.cpan.org/>.

AUTHOR

Toby Inkster <[email protected]>.

COPYRIGHT AND LICENCE

Copyright 2008-2012 Toby Inkster

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

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.