我应该使用哪个模块将mediawiki文本解析为Perl数据结构?

时间:2010-04-06 22:29:44

标签: perl mediawiki

我只需要将wikitext解析为Perl的哈希数组。我发现了几个模块。 Text::MediawikiFormat似乎是我需要的,但它返回HTML,我想要一个Perl数据结构。我也看了看:

1 个答案:

答案 0 :(得分:3)

几年前我写了一些代码来执行此操作,但它从未发布过,因为在语义上解析mediawiki wikitext 基本上不可能。问题是mediawiki允许你自由地将wikitext结构与HTML结构混合在一起,而mediawiki中的官方解析器通过逐步将wiki文本转换为HTML(大多数使用一组可怕的复杂正则表达式替换)来工作。

基本上我认为mediawiki wikitext除了被翻译成HTML之外不适合任何目的,如果你想解析任何东西,你可能最好使用一段代码将其翻译成HTML,并且然后解析那个HTML。

后记: Parse::MediaWikiDump是我的一位好朋友的优秀模块,但它实际上根本没有解析wikitext;它读取wikimedia 转储文件并提取页面文本和标题,修订信息以及类别和链接数据库等内容。它可以为您提供页面的wiki文本,但它不会将该wiki文本转换为其他任何内容。