¿Cómo puedo obtener el valor de atributo en un nodo xml en php?

Estoy usando simplexml para leer un archivo xml. Hasta ahora no puedo obtener el valor del atributo que estoy buscando. este es mi código

if(file_exists($xmlfile)){ $doc = new DOMDocument(); $doc->load($xmlfile); $usergroup = $doc->getElementsByTagName( "preset" ); foreach($usergroup as $group){ $pname = $group->getElementsByTagName( "name" ); $att = 'code'; $name = $pname->attributes()->$att; //not working $name = $pname->getAttribute('code'); //not working if($name==$preset_name){ echo($name); $group->parentNode->removeChild($group); } } } 

y mi archivo xml parece

   Default named somethignhere   

    Prueba esto :

     function getByPattern($pattern, $source) { $dom = new DOMDocument(); @$dom->loadHTML($source); $xpath = new DOMXPath($dom); $result = $xpath->evaluate($pattern); return $result; } 

    Y puede usarlo como (usando XPath ):

     $data = getByPattern("/regions/testclass1/presets/preset",$xml); 

    ACTUALIZAR


    Código:

     Defaultnamedsomethignhere"; $xml = new SimpleXMLElement($xmlstr); $result = $xml->xpath("/presets/preset/name"); foreach($result[0]->attributes() as $a => $b) { echo $a,'="',$b,"\"\n"; } ?> 

    Salida:

     code="default" 

    PD: También intente aceptar respuestas como mencionó @TJHeuvel; es una indicación de que respetas a la comunidad (y la comunidad estará más que feliz de ayudarte más, la próxima vez …)

    En realidad, la pregunta en mi cabeza incluye borrar un nodo también, erróneamente no pude agregarlo. Entonces, desde mi punto de vista, esta es la respuesta completa, por ejemplo, si alguien más lo encuentra útil. Esta respuesta no incluye la clase SimpleXMLElement porque lo difícil que lo intenté no eliminó el nodo con unset (); . Así que de vuelta a donde estaba, finalmente encontré una respuesta. Este es mi código y es simple!

     if(file_exists($xmlfile)){ $doc = new DOMDocument(); $doc->load($xmlfile); $presetgroup = $doc->getElementsByTagName( "preset" ); foreach($presetgroup as $group){ $pname = $group->getElementsByTagName( "name" ); $pcode = $pname->item(0)->getAttribute('code'); if($pcode==$preset_name){ echo($preset_name); $group->parentNode->removeChild($group); } } } $doc->save($xmlfile);