2011-08-15 18 views
0

私は1時間以上Googleを検索していて、欲求不満です。これはとても簡単です。私が印刷しようとしているのは私のaccountIdです。ここでは、私はサーバーから返されているXMLです:SimpleXMLの問題印刷キーの値

SimpleXMLElement Object 
(
[accounts] => SimpleXMLElement Object 
    (
     [account] => SimpleXMLElement Object 
      (
       [billingStreet] => SimpleXMLElement Object 
        (
        ) 

       [billingCity] => SimpleXMLElement Object 
        (
        ) 

       [billingState] => SimpleXMLElement Object 
        (
        ) 

       [billingPostalCode] => SimpleXMLElement Object 
        (
        ) 

       [billingCountry] => SimpleXMLElement Object 
        (
        ) 

       [city] => Los Angeles 
       [accountId] => XXXXX 
       [companyName] => SimpleXMLElement Object 
        (
        ) 

       [country] => United States 
       [email] => XXXXX 
       [enabled] => 1 
       [fax] => SimpleXMLElement Object 
        (
        ) 

       [firstName] => XXXXX 
       [lastName] => XXXXX 
       [multiClientFolder] => 0 
       [multiUser] => 0 
       [phone] => XXXXX 
       [postalCode] => XXXXX 
       [state] => CA 
       [street] => XXXXX 
       [title] => SimpleXMLElement Object 
        (
        ) 

       [accountType] => 0 
       [subscriberLimit] => 250000 
      ) 

    ) 

[total] => 1 
[limit] => 20 
[offset] => 0 
) 

私が欲しいものはaccountIdです。私はこれを使用していて何も印刷しません:

$ch=curl_init("https://app.sandbox.icontact.com/icp/a/"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$buf = curl_exec($ch); 
curl_close($ch); 
$xml = simplexml_load_string($buf); 
$aid=$xml->$accounts->$account->$accountId; 
print($aid); 

私はxml配列全体をprint_rでもうまく印刷できます。私が間違っていることを私は確信していません

答えて

3

多分$ aid = $ xml-> accounts-> account-> accountId ;?

+0

はそう単純で、それのthats:ほとんどの場合、あなたはそのままであり、それが自動的に適切な型にキャストされますが、文字列として値をしたい場合は、明示的なキャストを使用することができ、これを使用することができます。ありがとうございました。私は –

+0

があなたを助けてくれることを私に許可するときに私は答えとして選択するでしょう.. – madc

1

応じて、複数のアカウントを取得する可能性がある場合は、アカウントの要素に配列インデックスを追加することができます:アカウント以上

$aid = $xml->accounts->account[0]->accountId; 

または反復:

foreach ($xml->accounts->account as $account) { 
    ... 
} 

$ aidはSimpleXMLElement型であることにも注意してください。

$aid = (string) $xml->accounts->account[0]->accountId;