Я повысить битовую ваш образец XML и загрузить его в строку, так что вы можете увидеть эффект выражения XPath применяется. Также обратите внимание, что вам необходимо зарегистрировать все пространства имен, используемые в XML-файле. Префиксы не должны совпадать с xml, но зарегистрированные префиксы - это те, которые вам нужно использовать в вашем выражении xpath.
<?php
$string = <<<XML
<root xmlns:saml="http://example.org" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<saml:Attribute Name="Role">
<saml:AttributeValue xsi:type="xs:string">Master</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">Student1</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="Unknown">
<saml:AttributeValue xsi:type="xs:string">Zero</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">One</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="Role">
<saml:AttributeValue xsi:type="xs:string">Master</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">Student2</saml:AttributeValue>
</saml:Attribute>
</root>
XML;
$xml = new SimpleXMLElement($string);
$xml->registerXPathNamespace('a','http://www.w3.org/2001/XMLSchema');
$xml->registerXPathNamespace('b','http://www.w3.org/2001/XMLSchema-instance');
$xml->registerXPathNamespace('s','http://example.org');
$result = $xml->xpath('//s:Attribute[@Name="Role"]/s:AttributeValue[2]');
foreach ($result as $a)
{
print $a . "\n";
}
?>