繁体   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