2014-10-02 4 views
0

Я получаю доступ к api и считываю содержимое с помощью элемента Simplexml. Но когда im использует цикл foreach для доступа к значениям для узлов. Он дает мне значение только для первого цикла.not для других. ... ниже мой кодforeach loop не работает для 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, как показано выше. Я хочу прочитать имя и узел-актер, используя foreach loop.but im не сможет получить доступ только к имени и узлу-актеру под узлом3, а не ко второму .... Пожалуйста, исправьте цикл foreach или любой недостаток кода. выделить и мне помочь в исправлении, что ....

+0

, что происходит, когда вы Foreach ($ xml-> node1-> node2-> node3 в $ ключ = значение $) {var_dump $ key} – user3750649

+0

Мне жаль, что я вклеил неполный xml format.now скорректировал и выполнил это. Пожалуйста, подтвердите еще раз –

ответ

0

возможно установить его как этот

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

Мне жаль, что я вставил неполный xml format.now исправил и выполнил это. Пожалуйста, подтвердите onc e again.Really извините за это .... –

Смежные вопросы