Hellihello
das "@" muss schon da stehen vor Language. Und wenn der Wert keine Zahl ist, dann müssen da wohl noch Hochkommas rein. Den Namespace hab ich jetzt hierfür mal außen vor gelassen:
<?php
$xml_string =
'<?xml version="1.0" ?>
<CategoryCodes>
<CARTECInfo Code="35" Quantity="2">
<Description>
<Text Language="en">aa</Text>
<Text Language="de">cc</Text>
</Description>
</CARTECInfo>
<CARTECInfo Code="1" Quantity="2">
<Description>
<Text Language="en">gg</Text>
<Text Language="de">jj</Text>
</Description>
</CARTECInfo>
</CategoryCodes>
';
$simple_xml = simplexml_load_string($xml_string);
$query_string="//CARTECInfo[@Code=1]//Text[@Language='de']";
$node_list = $simple_xml->xpath($query_string);
var_dump($node_list);
ich habe das auch mal getestet. Der Logik nach habe ich es mir so vorgestellt:
$query_string="//irgendwas:CARTECInfo[@Code=1]/Text[Language=de]";
$node_list = $xml->xpath($query_string);
Das würde auch nur auf einen <Text> als direktes Kind von CARTEC... matchen, mal abgesehen von den anderen o.g. fehlenden Teilen.
Dank und Gruß,