2012-07-11 1 views
0

tumblr에서 제공하는 XML 정보를 읽으려고 노력하고 있습니다.PHP SimpleXML 노드를 가로 지르려고 할 때

<?php 
    $request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text'; 
    $xml = simplexml_load_file($request_url); 

    if (!$xml) 
    { 
     exit('Failed to retrieve data.'); 
    } 
    else 
    { 
     foreach ($xml->posts[0] AS $post) 
     { 
      $title = $post->{'regular-title'}; 
      $post = $post->{'regular-body'}; 
      $small_post = substr($post,0,320); 

      echo .$title.; 
      echo '<p>'.$small_post.'</p>'; 
     } 
    } 
?> 

노드를 통과하자마자 항상 중단됩니다. 그래서 기본적으로 "tumblr-> posts; .... ect"가 내 html 페이지에 표시됩니다.

정보를 로컬 XML 파일로 저장하려고했습니다. 문자열 (아마 어리석은 생각)로로드하는 것과 같이 simplexml 객체를 만드는 다른 방법을 사용해 보았습니다. 나는 나의 웹 호스팅이 PHP5를 실행하고 있다는 것을 두 번 확인했다. 그래서 기본적으로, 나는 이것이 작동하지 않는 이유에 집착하고 있습니다.

수정 : 좋아, 내가 원래 위치로 변경했는데, 원래의 방법으로 돌아왔다. tumblr에서 시작하는 것은 (실제로 바보 같은) 다른 방법으로 수정하려고 시도했다. 첫 번째 ->, 그래서 "posts [0] AS $ post .... ect"를 화면에 표시합니다.

이것은 내가 PHP에서 한 첫 번째 작업이므로 사전에 설정 했어야 할 사항이있을 수 있습니다. . 나도 몰라 그 생각 같은 것을 찾을 수 없습니다

답변

0

이 작동해야합니다.

<?php 
$request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text'; 
$xml = simplexml_load_file($request_url); 

if (!$xml){ 
    exit('Failed to retrieve data.'); 
}else{ 
    foreach ($xml->posts[0] AS $post){ 
     $title = $post->{'regular-title'}; 
     $post = $post->{'regular-body'}; 
     $small_post = substr($post,0,320); 

     echo $title; 
     echo '<p>'.$small_post.'</p>'; 
     echo '<hr>'; 
    } 
} 
0

$xml->posts 반환 당신에게 게시물 노드, 그래서 당신이 게시 노드를 반복 할 경우 당신에게 처음 게시물 내부 게시물을 통해 노드를 노드를 반복 할 수있는 기능을 제공하는 $xml->posts->post을 시도해야합니다.

또한 Needhi는 루트 노드 (tumblr)를 통과해서는 안되기 때문에 $xml 자체가 루트 노드임을 나타냅니다. (그래서 나는 나의 대답을 고쳤다.)

0
First thing in you code is that you used root element that should not be used. 

    <?php 
     $request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text'; 
     $xml = simplexml_load_file($request_url); 

     if (!$xml) 
     { 
      exit('Failed to retrieve data.'); 
     } 
     else 
     { 

      foreach ($xml->posts->post as $post) 
      { 
       $title = $post->{'regular-title'}; 
       $post = $post->{'regular-body'}; 
       $small_post = substr($post,0,320); 
       echo .$title.; 
       echo '<p>'.$small_post.'</p>'; 
      } 
     } 
    ?>