Daisuke Maki > MooseX-DOM-0.00001 > MooseX::DOM

Download:
MooseX-DOM-0.00001.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.00001   Source   Latest Release: MooseX-DOM-0.00999_02

NAME ^

MooseX::DOM - Simplistic Object XML Mapper

SYNOPSIS ^

  package MyObject;
  use Moose;
  use MooseX::DOM;
 
  has_dom_child 'title';

  no Moose;

  my $obj = MyObject->new(node => <<EOXML);
  <feed>
    <title>Foo</title>
  </feed>
  EOXML

  print $obj->title(), "\n"; # Foo
  $obj->title('Bar');
  print $obj->title(), "\n"; # Bar

DESCRIPTION ^

This module is intended to be used in conjunction with other modules that encapsulate XML data (for example, XML feeds).

DECLARATION ^

has_dom_attr $name[, %opts]

Specifies that the object should contain an attribute by the given name

has_dom_child $name[, %opts]

Specifies that the object should contain a single child by the given name. Will generate accessor that can handle set/get

  has_dom_child 'foo';

  $obj->foo(); # get the value of child element foo
  $obj->foo("bar"); # set the value of child element foo to bar

%opts may contain namespace, tag, and filter

Specifying namespace forces MooseX::DOM to look for tags in a specific namespace uri.

Specifying tag allows MooseX::DOM to look for the tag name given in tag while making the generated method name as $name

The optional filter should be a subroutine that takes the object itself as the first parameter, and the DOM node(s) as the rest of the parameters. You are allowed to transform the node as you like. By default, a filter that converts the node to its text content is used.

has_dom_children

Specifies that the object should contain possibly multiple children by the given name

  has_dom_children 'foo';

  $obj->foo(); # Returns a list of values for each child element foo
  $obj->foo(qw(1 2 3)); # Discards old values of foo, and create new nodes

%opts may contain namespace, tag, and filter

Specifying namespace forces MooseX::DOM to look for tags in a specific namespace uri.

Specifying tag allows MooseX::DOM to look for the tag name given in tag while making the generated method name as $name

The optional filter should be a subroutine that takes the object itself as the first parameter, and the DOM node(s) as the rest of the parameters. You are allowed to transform the node as you like. By default, a filter that converts the node to its text content is used.

AUTHOR ^

Daisuke Maki <daisuke@endeworks.jp>

LICENSE ^

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

See http://www.perl.com/perl/misc/Artistic.html