2012-08-13 73 views
0

我的问题更多地基于理论而不是语法,但任何语法建议都是值得欢迎的。我的项目有更大的范围和更小的范围。我会解释两者,但我最关心的是立即缩小范围。欢迎任何关于更大范围的建议。PHP XML解析到MySQL

什么,我需要完成(小范围)的简写:

解析多个(2-4)的XML文件。定位一个重复出现的元素。从每次出现时将该元素(一串字符)中的数据插入到mySQL中。从数据库读回有多少行数据被插入(我只需要计算每个文件中元素出现的次数,我并不是立即关心元素中的数据)。
我仍然需要存储数据,但最终只能关心元素在每个xml文件中出现的次数。然后我需要回显每个xml文件的总和,并最终通过电子邮件发送结果。

对于更大的范围:最终这个脚本将需要自动化。它需要每小时一次计划查找存储在本地服务器上的这些xml文件的新发生次数,插入到mySQL中,然后再回复那一小时的新求和。我的想法是cron工作。

我知道这是一个非常加载的问题,但任何帮助,将不胜感激。提前谢谢任何帮助/建议。

+1

那么你到目前为止尝试过什么?你想用什么方法? StackOverflow并非设计成真正的“告诉我如何做到这一点”网站。 – 2012-08-13 19:40:12

+0

你尝试过什么,就像Mike说的那样......还有:为什么要解析,插入,计数,回显然后再解析?如果您不打算将数据存储在MySQL中,为什么不解析文档并计算节点数 – 2012-08-13 19:43:15

+0

我现在意识到我的问题有点含糊。我想,这是我的瓶颈。我不是很熟悉PHP的XML函数/类,或者一般用XML文件。此外,我需要解析多个事实。 OOP对我来说也是一个相当新的概念。所以,我的问题主要在于,什么是我需要做的最好的解析器函数/类(在上面的问题中列出)。而且,由于我有不止一个,我应该创建多个类实例,还是我可以在同一个实例中解析多个文件? – malea78478 2012-08-13 21:53:02

回答

0

我的建议是开始编写脚本,建立数据库连接,使用SimpleXML,是的,除非你可以使用有机流量触发脚本,只需crontab它。

这并不困难,这只是一个事实,它是一个劳动密集型的脚本来编写。

但你可以做这样的事情(伪代码)...

$XML = new SimpleXMLElement($xmlstr); 

    foreach($XML->elements as $XML) 
    { 
    if(isset($XML->tag_you_are_looking_for)) 
    { 
     //Insert $XML->tag_you_are_looking_for to DB 
    } 
    } 

多个文件,只是循环解析器类,你做。对于远程文件,首先使用cURL获取它们。

我的建议总的来说只是从头脑中开始,如果遇到更多具体问题,请分别提问。

+0

谢谢,我会看到我可以工作。 – malea78478 2012-08-13 21:58:43