diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm
index b7238f6fee27fc85a2915c372cef6d02858151cd..1025ba1530310787256b1a9552e8f41bcae3054d 100644
--- a/lib/IdPAccountManager/SAMLMetadata.pm
+++ b/lib/IdPAccountManager/SAMLMetadata.pm
@@ -56,7 +56,7 @@ sub parse {
             ## Ignoringnodes of type XML::LibXML::Text or XML::LibXML::Comment
             next unless $child->nodeType() == XML_ELEMENT_NODE;
 
-            if ($child->nodeName =~ /IDPSSODescriptor$/) {
+            if ($child->localname() eq 'IDPSSODescriptor') {
 
                 $data->{type} = 'idp';
 
@@ -81,7 +81,7 @@ sub parse {
                     push @{ $data->{domain} }, $scope->textContent();
                 }
 
-            } elsif ($child->nodeName =~ /SPSSODescriptor$/) {
+            } elsif ($child->localname() eq 'SPSSODescriptor') {
 
                 $data->{type} = 'sp';
 
@@ -126,7 +126,7 @@ sub parse {
                       };
                 }
 
-            } elsif ($child->nodeName =~ /Extensions$/) {
+            } elsif ($child->localname() eq 'Extensions') {
 
                 foreach my $registrationinfo (
                     $child->getElementsByLocalName('RegistrationInfo'))
@@ -151,7 +151,7 @@ sub parse {
                         }
                     }
                 }
-            } elsif ($child->nodeName =~ /ContactPerson$/) {
+            } elsif ($child->localname() eq 'ContactPerson') {
                 my %contact_details;
                 $contact_details{type} = $child->getAttribute('contactType');
                 if (defined $contact_details{type}) {