Xml_encode() accepts fallback string.
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Utils.pm
index b0faa22..b88ec1a 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Utils.pm,v 1.12 2006-11-14 14:57:41 mike Exp $
+# $Id: Utils.pm,v 1.14 2006-11-14 16:21:49 mike Exp $
 
 package ZOOM::IRSpy::Utils;
 
@@ -26,7 +26,13 @@ our $IRSPY_NS = 'http://indexdata.com/irspy/1.0';
 # Template::Plugin both roll their own.  So I will do likewise.  D'oh!
 #
 sub xml_encode {
-    my ($text) = @_;
+    my ($text, $fallback) = @_;
+
+    $text = $fallback if !defined $text;
+    use Carp;
+    confess "xml_encode(): text and fallback both undefined"
+       if !defined $text;
+
     $text =~ s/&/&/g;
     $text =~ s/</&lt;/g;
     $text =~ s/>/&gt;/g;
@@ -176,10 +182,10 @@ sub dom_add_node {
     my @children = $node->childNodes();
     if (@children) {
        $node->insertBefore($new, $children[0]);
-       warn "Added new first child";
+       #warn "Added new first child";
     } else {
        $node->appendChild($new);
-       warn "Added new only child";
+       #warn "Added new only child";
     }
 
     if (0) {
@@ -203,7 +209,7 @@ sub find_or_make_node {
        my(undef, $ppath, $element) = $path =~ /((.*)\/)?(.*)/;
        $ppath = "" if !defined $ppath;
        #warn "path='$path', ppath='$ppath', element='$element'";
-       warn "no node '$path': making it";
+       #warn "no node '$path': making it";
        my $parent = find_or_make_node($xc, $ppath, $recursion_level-1);
 
        my(undef, $prefix, $nsElem) = $element =~ /((.*?):)?(.*)/;