Use getAttributeNS with the XML namespace to retrieve
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 31 Oct 2007 02:14:52 +0000 (02:14 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 31 Oct 2007 02:14:52 +0000 (02:14 +0000)
the xml:lang attributes from ils_events.xml.

Throw explicit error messages if things go bad.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@7948 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Event.pm

index 45f5d3b..538520b 100644 (file)
@@ -1,4 +1,5 @@
 package OpenILS::Event;
+# vim:noet:ts=4
 use strict; use warnings;
 use XML::LibXML;
 use OpenSRF::Utils::SettingsClient;
@@ -75,10 +76,16 @@ sub _load_events {
        $descs = {};
        my @desc = $doc->documentElement->findnodes('//desc');
        for my $d (@desc) {
-               my $lang = $d->getAttribute('lang');
+               my $lang = $d->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang');
                my $code = $d->parentNode->getAttribute('code');
-               if (!exists $descs->{$lang}) {
+               unless ($descs && $lang && exists $descs->{$lang}) {
                        $descs->{$lang} = {};
+                       if (!$descs) {
+                               $logger->error("No error description nodes found in $eventsxml.");
+                       }
+                       if (!$lang) {
+                               $logger->error("No xml:lang attribute found for node in $eventsxml.");
+                       }
                }
                $descs->{$lang}->{$code} = $d->textContent;
        }