3

在页面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 从 XML 转储中保存所有 HTML 页面(或文本,没关系)。你能帮助我吗?什么是 *FH ?

4

1 回答 1

3

我没有使用它,但文档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);
于 2013-11-21T18:41:42.700 回答