The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Parse::MediaWikiDump - Tools to process MediaWiki dump files


  use Parse::MediaWikiDump;
  $pmwd = Parse::MediaWikiDump->new;

  $pages = $pmwd->pages('pages-articles.xml');
  $revisions = $pmwd->revisions('pages-articles.xml');
  $links = $pmwd->links('links.sql');


This software suite provides the tools needed to process the contents of the XML page dump files and the SQL based links dump file.


This software is being RETIRED - MediaWiki::DumpFile is the official successor to Parse::MediaWikiDump and includes a compatibility library called MediaWiki::DumpFile::Compat that is 100% API compatible and is a near perfect standin for this module. It is faster in all instances where it counts and is actively maintained. Any undocumented deviation of MediaWiki::DumpFile::Compat from Parse::MediaWikiDump is considered a bug and will be fixed.


Please begin using MediaWiki::DumpFile::Compat immediately as a replacement for this module. There will be no more features added to this software suite and bugs may not be fixed. Parse::MediaWikiDump::Pages used to check the version of the dump file it is parsing and reject versions it does not know about; this behavior has been removed. The parser will now continue in this instance and hope for the best. This way this software will continue to run into the future with out requiring further adjustment for as long as the upstream fileformat remains compatible.

In the event there is an unfixable bug or the dump file format changes in an incompatible way the Parse::MediaWikiDump module as a whole wil be replaced with a stub that brings in MediaWiki::DumpFile::Compat - this may never need to happen but it is the plan for when it does. Migrating on your terms instead of being forced to if this happens is suggested.


This module is a factory class that allows you to create instances of the individual parser objects.


Returns a Parse::MediaWikiDump::Pages object capable of parsing an article XML dump file with one revision per each article.


Returns a Parse::MediaWikiDump::Revisions object capable of parsing an article XML dump file with multiple revisions per each article.

Returns a Parse::MediaWikiDump::Links object capable of parsing an article links SQL dump file.


All parser creation invocations require a location of source data to parse; this argument can be either a filename or a reference to an already open filehandle. This entire software suite will die() upon errors in the file or if internal inconsistencies have been detected. If this concerns you then you can wrap the portion of your code that uses these calls with eval().


This module was created, documented, and is maintained by Tyler Riddle <>.

Fix for bug 36255 "Parse::MediaWikiDump::page::namespace may return a string which is not really a namespace" provided by Amir E. Aharoni.


Please report any bugs or feature requests to, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

Known Bugs

No known bugs at this time.


Copyright 2005 Tyler Riddle, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.