使用PHP将维基XML数据转储到MySQL数据库中

时间:2014-08-08 09:24:57

标签: php mysql xml-parsing data-dump wiktionary

好吧,我只想解析Data Dump提供的维基词典Wikimedia

我的目的是将XML数据转储解析为MySQL数据库。我没有找到关于此XML结构的适当文档。此外,我无法打开该文件,因为它实际上非常庞大(~1 GB)。

我想过用一些PHP脚本解析它但我不知道要继续的XML结构。因此,如果有人已经使用PHP解析(或了解任何要解析的工具)到MySQL,请分享详细信息。如果没有PHP,其他方法也没关系。

我刚刚关注这篇文章(http://www.igrec.ca/lexicography/installing-a-local-copy-of-wiktionary-mysql/),但没有成功.. :(如果有人在此过程中取得成功,请提供帮助。先谢谢。

1 个答案:

答案 0 :(得分:3)

可以使用XMLReadercompress.bzip2:// stream上运行\-mediawiki (1) |-siteinfo (1) | |-sitename (1) | |-base (1) | |-generator (1) | |-case (1) | \-namespaces (1) | \-namespace (40) \-page (196) |-title (196) |-ns (196) |-id (196) |-restrictions (2) |-revision (196) | |-id (196) | |-parentid (194) | |-timestamp (196) | |-contributor (196) | | |-username (182) | | |-id (182) | | \-ip (14) | |-comment (183) | |-text (195) | |-sha1 (195) | |-model (195) | |-format (195) | \-minor (99) \-redirect (5) 来解析这些文件。您拥有的文件的结构是示例性的(窥视前三个元素):

mysql

文件本身有点大,因此处理需要相当长的时间。或者,不要对XML转储进行操作,而只需通过\-mediawiki (1) |-siteinfo (1) | |-sitename (1) | |-base (1) | |-generator (1) | |-case (1) | \-namespaces (1) | \-namespace (40) \-page (3993913) |-title (3993913) |-ns (3993913) |-id (3993913) |-restrictions (552) |-revision (3993913) | |-id (3993913) | |-parentid (3572237) | |-timestamp (3993913) | |-contributor (3993913) | | |-username (3982087) | | |-id (3982087) | | \-ip (11824) | |-comment (3917241) | |-text (3993913) | |-sha1 (3993913) | |-model (3993913) | |-format (3993913) | \-minor (3384811) |-redirect (27340) \-DiscussionThreading (4698) |-ThreadSubject (4698) |-ThreadPage (4698) |-ThreadID (4698) |-ThreadAuthor (4698) |-ThreadEditStatus (4698) |-ThreadType (4698) |-ThreadSignature (4698) |-ThreadParent (3605) |-ThreadAncestor (3605) \-ThreadSummaryPage (11) 命令行工具导入SQL转储。网站上也提供SQL转储,请参阅英文维基词典的所有转储格式:


整个文件较大,超过66 849 000个元素:

{{1}}