diff options
author | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-27 12:31:11 +0100 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-27 12:31:11 +0100 |
commit | 37da2f5823ef9c66a0b38a79ca8f05db0b9756fc (patch) | |
tree | 0511e27d87e3cf2e857a2c04081fbabc33e20e63 /lib/Tree/Template/Declare | |
parent | HTML::Element builder (diff) | |
download | Tree-Template-Declare-37da2f5823ef9c66a0b38a79ca8f05db0b9756fc.tar.gz Tree-Template-Declare-37da2f5823ef9c66a0b38a79ca8f05db0b9756fc.tar.bz2 Tree-Template-Declare-37da2f5823ef9c66a0b38a79ca8f05db0b9756fc.zip |
libxml, no namespace support
Diffstat (limited to 'lib/Tree/Template/Declare')
-rw-r--r-- | lib/Tree/Template/Declare/LibXML.pm | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/Tree/Template/Declare/LibXML.pm b/lib/Tree/Template/Declare/LibXML.pm new file mode 100644 index 0000000..7be3fe8 --- /dev/null +++ b/lib/Tree/Template/Declare/LibXML.pm @@ -0,0 +1,61 @@ +package Tree::Template::Declare::LibXML; +use strict; +use warnings; +use Carp; +use XML::LibXML; + +sub new { + my ($class)=@_; + + return bless {},$class; +} + +sub new_tree { + my ($self)=@_; + + return XML::LibXML::Document->new(); +} + +sub finalize_tree { + my ($self,$tree)=@_; + + return $tree; +} + +sub new_node { + my ($self)=@_; + + return XML::LibXML::Element->new(''); +} + +sub add_child_node { + my ($self,$parent,$child)=@_; + + my $doc=$parent->ownerDocument; + $child=$doc->adoptNode($child) if $doc; + + if ($parent->isa('XML::LibXML::Document')) { + $parent->setDocumentElement($child); + } + else { + $parent->appendChild($child); + } + return $parent; +} + +sub set_node_name { + my ($self,$node,$name)=@_; + + return $node->setNodeName($name); +} + +sub set_node_attributes { + my ($self,$node,$attrs)=@_; + + while (my ($name,$val)=each %$attrs) { + $node->setAttribute($name, $val); + } + return; +} + +1; |