2016-06-14 46 views
0

Ich versuche, von einem Soap-Service auf ein Objekt zuzugreifen. Mein Ziel ist es, den Wert in der Eigenschaft ID, die 53 ist, zu erhalten. Vor diesem Punkt habe ich simplexml_load_string verwendet, um zu dem Objekt zu gelangen, das Sie unten sehen. Wenn Sie jedoch versuchen, mit den Tasten -> oder [''] auf Notationen zuzugreifen, wird ein Fehler ausgegeben. Ich glaube, das @ in der Taste verursacht ein Problem.Zugriff auf ein Objekt vom Soap-Service

i erhalten folgendes Ergebnis:

als vardump:

object(SimpleXMLElement)[1951] 
    public '@attributes' => 
    array (size=1) 
     'id' => string '53' (length=2) 

als dd Ergebnis:

SimpleXMLElement {#1951 ▼ 
    +"@attributes": array:1 [▼ 
    "id" => "53" 
    ] 
} 

Debug Abschnitt:

$result =$service->call('DisplayCategories', [$data]); 

      $result = simplexml_load_string((string)$result->DisplayCategoriesResult->any); 
      // dd($result); 
      $result = $result->categories->category; 
      //dd($result); 
      $tempArr = array(); 

      foreach($result as $item) 
      { 
       // var_dump(html_entity_decode($item)); 
       var_dump($item); 
       dd(((object)$item)); 
       // dd(preg_replace(array("@"),'',$item)); 
       // dd(@simplexml_load_string($item)); 
       dd($item->attributes('id')); 
       $simple = $item->attributes('id'); 
       $resulters = ($item->attributes('id')); 
       dd($resulters); 
      } 

      $this->setResult($result); 
     }); 

Antwort

2

@attributes ist eine Funktion whi ch gibt ein Array zurück, auf das Sie nicht direkt zugreifen. Simply Alias ​​es zu einer Variablen, dann arbeiten Sie mit den Indizes, sobald Sie das getan haben.

$atts = $item->attributes(); 
dd($atts['id']); 

Auch als eine Randnotiz, cast Ihre Objekte ein string vor ihnen zu Dumping, wenn es ein simple xml object ist, sonst werden Sie einige funky stuff sehen, dass Sie wahrscheinlich für nicht suchen, sowieso.

+0

danke! solide, ich sehe, ich hatte die gleiche Idee, aber zog den Wert in der Eigenschaft den falschen Weg $ item-> Attribute ('id'); – Scripta55

Verwandte Themen