2011-08-15 156 views
0

我一直在谷歌搜索了一個多小時,很沮喪,這似乎很簡單。我試圖打印的所有內容都是我的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

完蛋了,就這麼簡單。謝謝。我會選擇答案當它允許我 –

+0

高興地幫助你.. – madc

1

如果在響應中獲得一個以上的帳戶的可能性,你可以添加一個數組索引到帳戶元素:

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

或者遍歷帳戶:

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

還要注意,$ aid將是SimpleXMLElement類型。在大多數情況下,你可以使用這個作爲 - 是,它會自動轉換爲相應的類型,但如果你想要的值作爲一個字符串,你可以使用顯式轉換:

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