2010-07-04 5 views
0

SimpleXML을 사용하여 외부 소스에서 데이터 파일을 구문 분석합니다.SimpleXML에서 데이터를 제대로 반환하지 않습니다.

<entry> 
     <title>Ball_Punch</title> 
     <author> 
      <name>burningcandle2010</name> 
      <uri>https://www.mochimedia.com/community/profile/burningcandle2010</uri> 
     </author> 
     <link href="http://www.mochimedia.com/games/allout-offsite" rel="alternate" /> 
     <link href="http://games.mochiads.com/c/g/allout-offsite/Ball_Punch.swf" rel="enclosure" type="application/x-shockwave-flash" /> 
     <id>urn:uuid:bf720e45-7ca0-34c7-a63a-0f6f20a4c267</id> 
     <media:player height="470" url="http://games.mochiads.com/c/g/allout-offsite/Ball_Punch.swf" width="798" /> 
     <media:thumbnail height="100" url="http://thumbs.mochiads.com/c/g/allout-offsite/_thumb_100x100.png" width="100" /> 
     <media:title>Ball_Punch</media:title> 
     <media:description>punch your ball</media:description> 
     <media:keywords>other, rhythm</media:keywords> 
     <category term="Puzzles" /> 
     <updated>2010-07-04T08:13:22.571963-08:00</updated> 
     <published>2010-07-04T06:58:55.577826-08:00</published> 
     <summary type="xhtml"> 
      <div xmlns="http://www.w3.org/1999/xhtml"> 
      <a href="http://www.mochimedia.com/games/allout-offsite"> 
       <img class="thumbnail" src="http://thumbs.mochiads.com/c/g/allout-offsite/_thumb_100x100.png" /> 
      </a> 
      <dl> 
       <dt>Tag</dt> 
       <dd class="tag">cdb41e529fbe39bd</dd> 
       <dt>Description</dt> 
       <dd class="description">punch your ball</dd> 
       <dt>Resolution</dt> 
       <dd class="resolution">798x470</dd> 
       <dt>Instructions</dt> 
       <dd class="instructions" /> 
       <dt>Key Mappings</dt> 
       <dd class="key_mappings" /> 
       <dt>Control Scheme</dt> 
       <dd class="control_scheme">{"fire": "left_mouse", "jump": "space", "movement": "mouse"}</dd> 
       <dt>Categories</dt> 
       <dd class="categories">Puzzles</dd> 
       <dt>Keywords</dt> 
       <dd class="keywords">other, rhythm</dd> 
       <dt>Rating</dt> 
       <dd class="rating">Everyone</dd> 
       <dt>Leaderboards</dt> 
       <dd class="leaderboards">False</dd> 
       <dt>Embed</dt> 
       <dd> 
        <code class="embed">&lt;embed src="http://games.mochiads.com/c/g/allout-offsite/Ball_Punch.swf" menu="false" quality="high" width="798" height="470" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;</code> 
       </dd> 
       <dt>Slug</dt> 
       <dd class="slug">allout-offsite</dd> 
       <dt>Featured</dt> 
       <dd class="recommended">False</dd> 
       <dt>Zip File</dt> 
       <dd class="zip_url">http://games.mochiads.com/c/g/allout-offsite.zip</dd> 
       <dt>SWF file size</dt> 
       <dd class="swf_file_size">184374</dd> 
      </dl> 
     </div> 
    </summary> 
</entry> 

내 코드는 여기에 있습니다 : :이처럼 보이는 결과에서 썸네일을 끌어하기 위해 노력하고있어 나는 인 print_r을 통해 ($ 축소판을)이 프로그램을 실행할 때, 그러나

$thumbnail = $game->summary->div->a->img->attributes()->src; 

, I get :

SimpleXMLElement Object 
(
    [0] => DATA_I_WANT 
) 

내가하는 일과 관계없이, 항상이 또는 빈 SimpleXMLElement 객체가됩니다. ->src[0], ->src->{'0'} 등을 사용해 보았습니다.

답변

2

단순히 문자열로 타입 캐스팅보십시오 :

print_r((string) $thumbnail) 

SimpleXML을 당신이 실제로 수집하는 데이터를 사용하려고 할 때 약간의 그늘이되는 습관을 가지고있다. 나는 그것이 밖으로 내뱉는 모든 것을 형변환하는 버릇이있다.

행운을 빈다.

1

그냥 문자열로 변환합니다. :]

$thumbnail = (string)$game->summary->div->a->img->attributes()->src; 
관련 문제