The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

XML::XBEL - OOP for reading and writing XBEL documents.

SYNOPSIS

 # creating an XBEL document

 use XML::XBEL;
 use XML::XBEL::Folder;
 use XML::XBEL::Bookmark;

 my $xbel = XML::XBEL->new();
 $xbel->new_document({title=>"My Bookmarks"});

 $xbel->add_bookmark({href  => "http://foo.com",
                      title => "foo",
                      desc  => "bar"});

 my $folder1 = XML::XBEL::Folder->new({title => "comp"});
 my $folder2 = XML::XBEL::Folder->new({title => "lang"});
 my $folder3 = XML::XBEL::Folder->new({title => "perl"});

 my $bm = XML::XBEL::Bookmark->new({"title=>"misc"});
 $bm->href("http://groups.google.com/groups?q=comp.lang.perl.misc");

 $folder3->add_bookmark($bm);
 $folder2->add_folder($folder3);
 $folder1->add_folder($folder2);

 $xbel->add_folder($folder1);

 print $xbel->toString();

 # parsing an XBEL document

 use XML::XBEL;

 my $xbel = XML::XBEL->new();
 $xbel->parse_file($file);
 
 foreach my $bm ($xbel->bookmarks()) {

     print sprintf("%s points to %s\n",
                   $bm->title(),
                   $bm->href());
 } 

DESCRIPTION

OOP for reading and writing XBEL files.

PACKAGE METHODS

__PACKAGE__->new()

Returns an XML::XBEL object.

OBJECT METHODS

$self->parse_file($file)

Returns true or false.

$self->parse_string($string)

Returns true or false.

$obj->new_document(\%args)

Valid arguments are :

  • title

    String.

  • desc

    String.

  • info

    Hash ref, with the following key/value pairs :

    • owner

      Array ref.

Returns true or false.

$obj->title($title)

Get/set the title for an XBEL document.

Returns a string when called with no arguments; otherwise returns true or false.

$obj->desc($description)

Get/set the description for an XBEL document.

Returns a string when called with no arguments; otherwise returns true or false.

$obj->info(\%args)

Get/set the metadata for an XBEL document.

Valid args are :

  • owner

    Array reference

Returns an array reference when called with no arguments; otherwise returns true or false.

$obj->bookmarks($recursive)

Returns a list of child XML::XBEL::Bookmark objects.

Where $recursive is a boolean indicating whether to return all the bookmarks in an XBEL document or only its immediate children.

$obj->folders($recursive)

Returns a list of child XML::XBEL::Folder objects.

Where $recursive is a boolean indicating whether to return all the folders in an XBEL document or only its immediate children.

$obj->aliases($recursive)

Returns a list of child XML::XBEL::Alias objects.

Where $recursive is a boolean indicating whether to return all the aliases in an XBEL document or only its immediate children.

$obj->find_by_id($id)

Returns an XML::XBEL::Bookmark or XML::XBEL::Folder object whose id attribute matches $id.

$obj->find_by_href($href)

Returns a list of XML::XBEL::Bookmark objects whose href attribute matches $href.

$obj->add_bookmark((XML::XBEL::Bookmark || \%args))

Add a new bookmark to an XBEL document.

If passed a hash ref, valid arguments are the same as those defined for the XML::XBEL::Bookmark object constructor.

$obj->add_folder((XML::XBEL::Folder || \%args))

Add a new folder to an XBEL document.

If passed a hash ref, valid arguments are the same as those defined for the XML::XBEL::Folder object constructor.

$obj->add_alias((XML::XBEL::Alias || \%args))

Add a new alias to an XBEL document.

If passed a hash ref, valid arguments are the same as those defined for the XML::XBEL::Alias object constructor.

$obj->add_separator()

Add a new separator to an XBEL document.

$obj->toString($format)

$obj->toFile($filename,$format)

$obj->toFH(\*$fh,$format)

$obj->toSAX(A::SAX::Handler)

Generate SAX events for the XBEL object.

VERSION

1.4

DATE

$Date: 2005/04/02 20:54:52 $

AUTHOR

Aaron Straup Cope <ascope@cpan.org>

SEE ALSO

XML::XBEL::Folder

XML::XBEL::Bookmark

XML::XBEL::Alias

XML::XBEL::Separator

BUGS

It's possible. Please report all bugs via http://rt.cpan.org

LICENSE

Copyright (c) 2004 Aaron Straup Cope. All rights reserved.

This is free software, you may use it and distribute it under the same terms as Perl itself.