2010-07-04 2 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> 

Мой код здесь:

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

Однако, когда я запускаю это через print_r ($ миниатюру), я получаю:

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; 
Смежные вопросы