2011-10-19 73 views
0

我有一個XML文件,如下所示。我想用PHP解析這個XML文件。如何解析PHP中的多個類似的XML標籤?

<id_list> 
    - 
    <ids> 
     <id>195002349</id> 
     <id>374487611</id> 
     <id>192983648</id> 
     <id>168378766</id>` 
     <id>161573001</id> 
    </ids> 

    <next_cursor>0</next_cursor> 
    <previous_cursor>0</previous_cursor> 
</id_list> 

我想在輸出形式:

Id1=195002349 Id2=374487611 Id3=192983648 Id4=168378766 Id5=161573001 
+0

你知道,他們不會讓你閱讀http://stackoverflow.com/questions/ask-advice的樂趣。請在提問之前進行調查。 – Gordon

回答

0

當讀取XML(與SimpleXMLElement($file)),使用XPath搜索 「IDS」,並做了while循環讀取element`的文本。

像這樣:

$notes = new SimpleXMLElement('test2.xml', NULL, true); 
$all = array(); 
$results = $notes->xpath("/id_list/ids/id"); 
foreach($results as $to){ 
    echo "<br>".$to; 
    $all[]=(string)$to; 
} 

print_r($all); 
0

這是一個方便的小功能,兩個指定的文本塊之間帶出一個字符串。這可以用於解析XML文本,bbCode或任何其他分隔的代碼/文本。

function get_string_between($string, $start, $end){ 
    $string = " ".$string; 
    $ini = strpos($string,$start); 
    if ($ini == 0) return ""; 
    $ini += strlen($start); 
    $len = strpos($string,$end,$ini) - $ini; 
    return substr($string,$ini,$len); 
} 

$fullstring = "this is my [tag]dog[/tag]"; 
$parsed = get_string_between($fullstring, "[tag]", "[/tag]"); 

echo $parsed; // (result = dog) 
+0

爲什麼這麼方便,它如何回答OP的問題? – Gordon