2014-10-02 130 views
0

我訪問api和閱讀與Simplexml element.But內容時,即時通訊使用foreach循環訪問節點的值。它給我的價值只有第一loop.not爲他人。下面... 是我的代碼foreach循環不工作for simplexmlelement在PHP

<?php 
include('connection.php'); 
header("Content-Type: text/xml;"); 
function httpGet($url) 
{ 
    $ch = curl_init(); 

    curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
// curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'header1:value1', 
    'header2:value2' 
    )); 
    $output=curl_exec($ch); 
    curl_close($ch); 
    return $output; 
} 
$data= httpGet("http://apiurl"); 
$xml = new SimpleXMLElement($data); 
foreach ($xml->node1->node2->node3 as $info) { 
    echo $info->name, ' played by ', $info->actor, PHP_EOL; 
} 
?> 

XML格式即時閱讀

<?xml version='1.0' standalone='yes'?> 
    <main> 
    <node1> 
     <title>PHP: Behind the Parser</title> 
     <node2> 
     <node3> 
     <name>Ms. Coder</name> 
     <actor>Onlivia Actora</actor> 
     </node3> 
</node2> 
<node2> 
     <node3> 
     <name>Mr. Coder</name> 
     <actor>El Act&#211;r</actor> 
     </node3> 
     </node2> 
    </node1> 
    </main> 

當即時運行上述PHP代碼,用於讀取由具有如上所示的XML格式的API含量。 我想讀取名稱和演員節點使用foreach循環。但我不能只訪問節點3下的名字和演員節點,而不是第二個.... 請糾正foreach循環或代碼中的任何缺陷..請亮點,幫我糾正....

+0

當你的foreach會發生什麼($ XML-> node1-> node2->節點3爲$鍵= $值) {var_dump $ key} – user3750649 2014-10-02 05:48:28

+0

對不起,我粘貼不完整的XML格式。現在已經糾正並完成了..請再次驗證 – 2014-10-02 05:52:34

回答

0

也許設置它像這樣

foreach ($xml->node1->node2 as $info) { 
    echo $info->node3->name, ' played by ', $info->node3->actor, PHP_EOL; 
} 
+0

我對不起,我粘貼不完整的XML格式。現在已糾正並完成了..請驗證ONC再說一次,真的很抱歉.... – 2014-10-02 05:53:09