Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

XML::APML
APML parser/builder

XML::APML - APML parser/builder


NAME

XML::APML - APML parser/builder


SYNOPSIS


    # parse APML

    use XML::APML;

    use Perl6::Say;

    use DateTime;

    use DateTime::Format::W3CDTF;

    my $path = "/path/to/apml.xml";

    my $apml = XML::APML->parse_file($path);

    my $fh = IO::File->open($path);

    my $apml = XML::APML->parse_fh($fh);

    my $str = "<APML version='0.6'>...</APML>";

    my $apml = XML::APML->parse_string($str);

    foreach my $profile ($apml->profiles) {

        my $implicit = $profile->implicit_data;

        foreach my $concept ($implicit->concepts) {

            say $concept->key;

            say $concept->value;

            say $concept->from;

            my $dt = DateTime::Format::W3CDTF->new->parse_datetime($concept->updated);

            say $dt->year;

            say $dt->month;

        }

        foreach my $source ($implicit->sources) {

            say $source->key;

            say $source->value;

            say $source->name;

            say $source->type;

            foreach my $author ($source->authors) {

                say $author->key;

                say $author->value;

                say $author->from;

                my $dt = DateTime::Format::W3CDTF->new->parse_datetime($author->updated);

                say $dt->year;

                say $dt->month;

            }

        }

        my $explicit = $profile->explicit_data;

        # my $explicit = $profile->explicit;

        foreach my $concept ($explicit->concepts) {

            my $key   = $concept->key;

            my $value = $concept->value;

        }

        foreach my $source ($explicit->sources) {

            $source->key;

            $source->value;

            $source->name;

            $source->type;

            foreach my $author ($source->authors) {

                $author->key;

                $author->value;

            }

        }

    }

    foreach my $application ($apml->applications) {

        $application->name;

        $application->elem;

    }

    # build apml

    my $apml = XML::APML->new;

    $apml->title('My Attention Profile');

    $apml->generator('My Application');

    $apml->user_email('example@example.com');

    $apml->date_created( DateTime::Format::W3CDTF->new->format_datetime( DateTime->now ) );

    $apml->defaultprofile("Home");

    # or you can set them at once

    my $apml = XML::APML->new(

        title          => 'My Attention Profile', 

        generator      => 'My Application',

        user_email     => 'example@example.org',

        date_created   => DateTime::Format::W3CDTF->new->format_datetime( DateTime->now ),

        defaultprofile => 'Home',

    );

    my $profile = XML::APML::Profile->new;

    $profile->name("Home");

    $profile->explicit->add_concept( XML::APML::Concept->new(

        key   => 'music',

        value => 0.5,

    ) );

    $profile->explicit->add_concept( XML::APML::Concept->new(

        key   => 'sports',

        value => 0.9,

    ) );

    $profile->explicit->add_source( XML::APML::Source->new(

        key   => 'http://feeds.feedburner.com/TechCrunch',

        value => 0.4,

        name  => 'Techchunch',

        type  => 'application/rss+xml',

    ) );

    $profile->implicit->add_concept( XML::APML::Concept->new(

        key     => 'business',

        value   => 0.93,

        from    => 'GatheringTool.com',

        updated => '2007-03-11T01:55:00Z',

    ) );

    $profile->implicit->add_source( XML::APML::Source->new(

        key     => 'http://feeds.feedburner.com/apmlspec',

        value   => 1.00,

        from    => 'GatheringTool.com',

        updated => '2007-03-11T01:55:00Z',

        name    => 'APML.org',

        type    => 'application/rss+xml',

    ) );

    my $source = XML::APML::Source->new(

        key   => 'http://feeds.feeedburner.com/TechCrunch',

        value => 0.4,

        name  => 'Techchunch',

        type  => 'application/rss+xml',

    );

    $source->add_author( XML::APML::Author->new(

        key     => 'Sample',

        value   => 0.5,

        from    => 'GatheringTool.com',

        updated => '2007-03-11T01:55:00Z',

    ) );

    $profile->implicit->add_source($source);

    $apml->add_profile($profile);

    my $application = XML::APML::Application->new;

    $application->name("MyApplication");

    $apml->add_application($application);

    print $apml->as_xml;


DESCRIPTION

APML (Attention Profiling Mark-up Language) Parser / Builder

This module allows you to parse or build XML strings according to APML specification. Now this supports version 0.6 of APML.

See http://www.apml.org/


METHODS

new

parse_string

parse_file

parse_fh

add_profile

profiles

add_application

applications

as_xml

Build XML from object and returns it as string.


    my $apml = XML::APML->new;

    $apml->title(...);

    $apml->user_email(...);

    ...

    $apml->as_xml;


AUTHOR

Lyo Kato, lyo.kato at gmail.com


LICENSE

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

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy