Как использовать MediaWiki::DumpFile для преобразования XML-дампа Википедии в HTML?

На странице MediaWiki::DumpFile присутствует следующий код:

  use MediaWiki::DumpFile;

  $mw = MediaWiki::DumpFile->new;

  $sql = $mw->sql($filename);
  $sql = $mw->sql(\*FH);

  $pages = $mw->pages($filename);
  $pages = $mw->pages(\*FH);

  $fastpages = $mw->fastpages($filename);
  $fastpages = $mw->fastpages(\*FH);

  use MediaWiki::DumpFile::Compat;

  $pmwd = Parse::MediaWikiDump->new;

Я совершенно новичок в Perl и не знаю, что делать с $fastpages, чтобы сохранить все HTML-страницы (или текст, это не имеет значения) из XML-дампа. Вы можете мне помочь? А что такое *FH?

1 ответ

Решение

Я не использовал это, но документация для MediaWiki::DumpFile::FastPages имеет следующий пример для печати заголовка и текста каждой статьи в файле дампа:

use MediaWiki::DumpFile::FastPages;

$pages = MediaWiki::DumpFile::FastPages->new($file);
$pages = MediaWiki::DumpFile::FastPages->new(\*FH);

while(($title, $text) = $pages->next) {
  print "Title: $title\n";
  print "Text: $text\n";
}

Это напишет все для stdout, Когда вы создаете MediaWiki::DumpFile::FastPages объект, вы можете передать либо имя файла, например,

$file = "/path/to/dump/file";
$pages = MediaWiki::DumpFile::FastPages->new($file);

или ссылка на дескриптор файла, например

open FH, "<", "/path/to/dump/file" or die "Failed to open file: $!";
$pages = MediaWiki::DumpFile::FastPages->new(\*FH);
Другие вопросы по тегам