簡體   English   中英

PHP使用SQL查詢XML

[英]PHP query XML with SQL

我正在進行一些Web抓取,遇到了要查詢的幾個數據表。 目前我的工作是:

$url = 'http://finance.yahoo.com/q/op?s=QQQQ&m=2012-04';
$html = @DOMDocument::loadHTMLFile($url); 
$xml = simplexml_import_dom($html); 
$results = $xml->xpath('//table[@class="yfnc_datamodoutline1"]');
var_dump($results);

產生結果: http : //pastebin.com/6p3L2Kcc

這是帶有TH和TD以及所有內容的有序HTML表數據。 我想這樣使用它:

$sql = 'SELECT Last,Open_Int FROM TABLE1 WHERE Last>25 AND Symbol LIKE "%C%"';
$results = $xmltable->sql($sql);
while($result = $results->fetch_assoc())
  echo $result['Last'] . " -- " . $result['Open_Int'] . "\n";

沒有任何創造力,我可以編寫類來解析該HTML表,獲取第一行,在sqlite中創建表,選擇其他行並將其轉換為insert語句。 但是,您知道執行此操作的更好方法嗎,還是我沒有看到某些強大的PHP函數?

更新 :也許這里的范圍太大。 我很樂意提供一個庫鏈接或有關將HTML表插入(適當)XML表的建議。

答案取決於您的更大需求。 這是三個可以充實這些問題的問題:

1)多久讀取一次數據?

2)您保留舊版本還是僅需要最新版本?

3)將數據與其他數據進行比較嗎?

在一種情況下,假設#1的答案是“更多閱讀”,而#3的答案是“是”。 在這種情況下,將XML結果放入SQL表以進行頻繁且靈活的查詢可能是非常值得的。

但是,在另一種情況下,假設#2的答案為“否”,而#3的答案為“否”-您只保留最新的檢索結果,而不將其與任何內容進行比較。 在這種情況下,您可以粘貼到一個文件中並根據需要檢索該文件以進行顯示(#1變得無關緊要)。

針對評論中的問題進行編輯 :假設您要將其放入數據庫中,鏈接到的顯示將顯示一組嵌套的對象/數組。 您“遍歷樹”以剝離嵌套對象,剝離它們的屬性,並向特定表發出單獨的插入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM