好了,我正在尝试解析维基媒体提供的维基词典数据转储。
我的目的是解析XML数据转储到MySQL数据库。我没有找到关于这个XML结构的适当文档。此外,我无法打开文件,因为它实际上非常大(~ 1gb)。
我想用一些PHP脚本解析它,但我对XML结构没有任何想法。因此,如果有人已经使用PHP解析(或有任何工具解析的想法)到MySQL,请分享细节。如果PHP中没有,其他方法也可以。
我只是跟着这个帖子(http://www.igrec.ca/lexicography/installing-a-local-copy-of-wiktionary-mysql/),但它没有工作…如果有人在这个过程中成功了,请提供帮助。
这些文件可以在PHP中解析,XMLReader
在compress.bzip2://
流上操作。您拥有的文件结构是典型的(窥视到前3000个元素):
-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)
文件本身稍大一些,因此需要相当长的时间来处理。或者不操作XML转储,而只是通过mysql
命令行工具导入SQL转储。网站上也提供SQL转储,请查看所有转储格式的英文维基词典:
- http://dumps.wikimedia.org/enwiktionary/latest/
整个文件略大,有超过66 849 000个元素:
-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)