From 6ab176ee34c6b0b7e2e1e85dde5bafcd76cb7e93 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Tue, 21 Apr 2009 15:50:39 +0200 Subject: added text nodes to XML --- lib/Tree/Template/Declare/LibXML.pm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'lib/Tree/Template/Declare/LibXML.pm') diff --git a/lib/Tree/Template/Declare/LibXML.pm b/lib/Tree/Template/Declare/LibXML.pm index d5e208c..066d2e4 100644 --- a/lib/Tree/Template/Declare/LibXML.pm +++ b/lib/Tree/Template/Declare/LibXML.pm @@ -11,7 +11,7 @@ sub new { } sub _munge_exports { - my ($self,$exports)=@_; + my ($self,$exports,$current_node_aref)=@_; return { %$exports, @@ -19,6 +19,11 @@ sub _munge_exports { $self->{ns}->{$_[0]}=$_[1]; return; }, + text_node => sub($) { + if ($current_node_aref->[0]) { + $current_node_aref->[0]->appendTextNode($_[0]); + }, + }, }; } @@ -117,6 +122,18 @@ A function C is exported, so that you can declare XML namespaces: You I create nodes with qualified names with undeclared prefixes, but it's probably not a good idea. +To add text nodes, you could do something like: + + my $el=node { name 'elem_with_text' }; + $el->appendTextNode('some text content'); + +This is ugly, so you can do: + + node { + name 'elem_with_text'; + text_node 'some text content'; + }; + =head1 AUTHOR Gianni Ceccarelli -- cgit v1.2.3