+ my $new = new XML::LibXML::Text($value);
+ foreach my $predecessor (reverse @addAfter) {
+ my($child) = $xc->findnodes($predecessor, $node);
+ if (defined $child) {
+ $node->insertAfter($new, $child);
+ print "Added after '$predecessor'\n";
+ return;
+ }
+ }
+
+ # Didn't find any of the nodes that are supposed to precede the
+ # new one, so we need to insert the new node as the first of the
+ # parent's children. However *sigh* there is no prependChild()
+ # analogous to appendChild(), so we have to go the long way round.
+ my @children = $node->childNodes();
+ if (@children) {
+ $node->insertBefore($new, $children[0]);
+ print "Added new first child\n";
+ } else {
+ $node->appendChild($new);
+ print "Added new only child\n";
+ }
+