2011-08-21 52 views
0

我在這裏讓自己瘋狂,我幾乎是積極的,我至少在正確的軌道上。字符串中的簡單XML - 缺少什麼?

我只是想解析我從XML返回的API中得到的響應。我真的只需要打印「Lyric」索引。

Anywho,這裏是代碼:

<?php 
    $artist = $_GET['artist']; 
    $song = $_GET['song']; 

    if(isset($_GET['artist']) && isset($_GET['song'])) 
    { 
     $result = get_lyrics($artist, $song); 
    } else { 
     $result = ""; 
    } 

    function get_lyrics($artist, $song) 
    { 
     $postURL = "http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=".urlencode($artist)."&song=".urlencode($song); 
     echo $postURL; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $postURL); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
     $result = curl_exec($ch); 
     curl_close($ch); 

     return $result; 
    } 

?> 


<html> 
    <head><title>Lyric Search</title></head> 

    <form action="<?=$_SERVER['PHP_SELF']?>" method="get"> 
     <p>Artist<input type="input" name="artist" /></p> 
     <p>Song<input type="input" name="song" /></p> 
     <input type="submit" value="submit" /> 
    </form> 

    <div id="results"> 
     <?php 

      $xml = simplexml_load_string($result); 

      foreach($xml->GetLyricResult as $lyric) 
      { 
       echo $lyric->Lyric; 
      } 
     ?> 
    </div> 
</html> 

這裏是XML ....

http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=lady+gaga&song=poker+face

回答

1

你不需要使用foreach,因爲只有一首歌詞。

你只需要:

<div id="results"> 
<?php 
$xml = simplexml_load_string($result); 
echo $xml->Lyric[0]; 
?> 
</div> 
1

嘗試:

<html> 
    <head><title>Lyric Search</title></head> 

    <form action="<?=$_SERVER['PHP_SELF']?>" method="get"> 
     <p>Artist<input type="input" name="artist" /></p> 
     <p>Song<input type="input" name="song" /></p> 
     <input type="submit" value="submit" /> 
    </form> 

    <div id="results"> 
<?php 
    if(isset($_GET['artist']) && isset($_GET['song'])){ 
     $result = get_lyrics($_GET['artist'],$_GET['song']); 
     $xml = simplexml_load_string($result); 

     echo "<pre>"; 
     //print_r($xml); 
     echo $xml->Lyric; 
     echo "</pre>"; 
    } 

    function get_lyrics($artist, $song) 
    { 
     $postURL = "http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=".urlencode($artist)."&song=".urlencode($song); 
     echo $postURL; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $postURL); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
     $result = curl_exec($ch); 
     curl_close($ch); 

     return $result; 
    } 
?> 
    </div> 
</html> 
+0

謝謝你,這是比我的代碼更具吸引力:) – Alpinestar22