2010-04-10 41 views
1

這裏是我想分析 頁面(API的鏈接我給的只是一個開發測試,以便其確定爲public) http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m我該如何解析一個xml頁面來輸出它的數據到我想要的方式?

輸出即時尋找的是這樣的(現在)

Doc_id: 29638658 
access_key: key-11fg37gwmer54ssq56l3 
secret_password: 1trinfqri6cnv3gf6rnl 
title: Sample 
description: k 
thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg 
page_count: 100 

我嘗試了一切,我可以在互聯網上找到,但沒有什麼效果。我有這樣的一個腳本

<?php 
$xmlDoc = new DOMDocument(); 
$xmlDoc->load("http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m"); 

$x = $xmlDoc->documentElement; 
foreach ($x->childNodes AS $item) { 
    print $item->nodeName . " = " . $item->nodeValue; 
} 



?> 

其輸出出來是這樣的:

#text = 
    resultset = 

     29638658 
     key-11fg37gwmer54ssq56l3 
     1trinfqri6cnv3gf6rnl 

     Sample 


     k 

     http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg 

     DONE 

     100 


     29713260 
     key-18a9xret4jf02129vlw8 
     25fjsmmvl62l4cbwd1vq 

     book2 


     description bla bla 

     http://i6.scribdassets.com/public/images/uploaded/153065528/oLVqPZMu3zhsOn_thumbnail.jpeg 

     DONE 

     7 

    #text = 

我需要重點扶持的IM真的卡住,不知道該怎麼辦。請請幫助我。 thnx

+0

轉發http:// stack overflow.com/questions/2611998/trying-to-parse-an-xml-from-a-url-and-it-wont-work 用戶說「please please help」的另一個例子,但甚至沒有迴應他們以前的答案。 – 2010-04-11 00:37:47

回答

0

我建議您將XML數據加載到新的SimpleXmlElement對象中,因爲這樣可以使您對文檔運行xpath查詢。

你需要做它是如何工作的,但這裏有幾個要點一個小小的研究...

執行的XPath像這樣:

// $xml is a SimpleXMLElement object 
$xml = simplexml_load_file('/path/to/file'); 
$nodes = $xml->xpath('/xpathquery'); 

單/代表根節點(在你的情況下rsp)。雙斜線表示任何匹配節點。例如//標題將返回所有標題。 xpath查詢的每個結果都是一個SimpleXMLElements數組。你可以從它像這樣得到的數據:

# Untested   
$xml = simplexml_load_file('/path/to/file'); 
$nodes = $xml->xpath('//result'); 

foreach ($result as $node) { 
    // Print out the value in title 
    echo $node->title; 
} 

// Print out the amount of results 
echo $xml->rsp->attributes()->totalResultsAvailable; 

最後一個例子的結果數可能無法正常工作,但它是沿着這些線路。

0

快速和骯髒的,事物的方式應該是:

<?php 
$x = simplexml_load_file('http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m'); 
foreach($x->resultset->result as $v) { 
    foreach((array)$v as $kk=>$vv) { 
     echo $kk.": ".trim($vv)."<br>\n"; 
    } 
    echo "<br><br>\n"; 
} 

這將以您要求的格式輸出:

doc_id: 29638658 
access_key: key-11fg37gwmer54ssq56l3 
secret_password: 1trinfqri6cnv3gf6rnl 
title: Sample 
description: k 
thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg 
conversion_status: DONE 
page_count: 100 

doc_id: 29713260 
access_key: key-18a9xret4jf02129vlw8 
secret_password: 25fjsmmvl62l4cbwd1vq 
title: book2 
description: description bla bla 
thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/153065528/oLVqPZMu3zhsOn_thumbnail.jpeg 
conversion_status: DONE 
page_count: 7 
相關問題