In the code below I took the XML you provided and added a new AuthenticatedStatus element with a different namespace for testing purposes. I'm feeding XML::XPath directly with that XML, but you can also save the response you get from the webservice and feed that file instead. Just change to my $xp = XML::XPath->new(filename => 'you_xml_file');
use strict;
use warnings;
use XML::XPath;
my $stream = qq{
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ProcessSetupResponse xmlns="http://namespace1">
<ProcessSetupResult xmlns:a="http://namespace2" xmlns:i="http://www.w3
+.org/2001/XMLSchema-instance">
<a:AuthenticatedStatus>N</a:AuthenticatedStatus>
<i:AuthenticatedStatus>Y</i:AuthenticatedStatus>
<a:AuthenticatedWith>3-D Secure</a:AuthenticatedWith>
...
</ProcessSetupResult>
</ProcessSetupResponse>
</s:Body>
</s:Envelope>
};
my $xp = XML::XPath->new(xml => $stream);
$xp->set_namespace('a',"http://namespace2");
$xp->set_namespace('i',"http://www.w3.org/2001/XMLSchema-instance");
print "AuthStatus\t", $xp->getNodeText('//ProcessSetupResponse/Process
+SetupResult/i:AuthenticatedStatus'), "\n";
print "AuthStatus\t", $xp->getNodeText('//ProcessSetupResponse/Process
+SetupResult/a:AuthenticatedStatus'), "\n";
outputs
AuthStatus Y
AuthStatus N