my $results = $stylesheet->transform($source); # Now grab any elements in our namespace my @nodelist = $results->getElementsByTagNameNS($XMLNS, "*"); foreach my $node (@nodelist) { my $newnode; switch ($node->localname()) { case('wrap') { # Pass this all through the Text::Wrap engine. my $sourcetext = $node->textContent(); my $tab = $node->getAttribute('tab') || "\t"; my $first_tab = $node->getAttribute('firsttab') || $tab; my $wrapped_text = wrap($first_tab, $tab, $sourcetext); $newnode = XML::LibXML::Text->new($wrapped_text); } else { die "Unknown processing directive $XMLNS:" . $node->localname() . "\n"; } } if (defined $newnode) { my $parent = $node->parentNode(); $parent->replaceChild($newnode, $node); } }