Windows上でXML :: libxmlのモジュールをインストールすることはできません
-
20-09-2019 - |
質問
私はいくつかのHTMLタグとデータを抽出するためにXPath
を使用しようとしていますし、そのために私はXML::LibXML
モジュールを使用する必要があります。
私はCPANシェルからそれをインストールしようとしたが、それはインストールされません。
私たちはlibxml2
をインストールする前にiconv
、zlib
とXML::LibXML
ラッパーをインストールする必要があり、それがうまくいかなかったことを、インストールに関するCPANサイトからの指示に従いました。
また、私に教えてくださいます。
手元のタスクます:
私は本当に大きなされたHTMLページ上の特定の<dd>
タグを探しています(5000周り - 10000)<dd>
と<dt>
タグ。だから、私は<dd>
タグ内のコンテンツと一致し、対応する(次の)<dt>
タグ内のコンテンツをフェッチするスクリプトを書いています。
私はもう少し明確になっていることがしたいです。すべてのヘルプは大歓迎されます。
解決
、あなたは ActivePerlの10XXのWin32 PPMパッケージに記載されているリポジトリを追加する必要があります。 ppm
し、
ppm install XML::LibXML
XMLは、一般的に楽しい作業ではありませんとしてHTMLを解析しようとしています。私は HTML :: TokeParser のタスクに、より適していると思います。
#!/usr/bin/perl
use strict;
use warnings;
use HTML::TokeParser;
my $p = HTML::TokeParser->new(\*DATA);
my @definitions;
while ( my $dl_tag = $p->get_tag('dl') ) {
while ( my $dt_tag = $p->get_tag('dt') ) {
my $term = $p->get_trimmed_text('/dt');
my $dd_tag = $p->get_tag('dd');
my $defn = $p->get_trimmed_text('/dd');
push @definitions, [$term, $defn];
}
}
use Data::Dumper;
print Dumper \@definitions;
__DATA__
<dl>
<dt>One</dt>
<dd>1</dd>
<dt>Two</dt>
<dd>2</dd>
</dl>
出力:
$VAR1 = [ [ 'One', '1' ], [ 'Two', '2' ] ];
他のヒント
私はちょうどxmlファイルでXPathクエリを実行するためにXMLを使用するスクリプト昨日:: XPathの:: XMLParserのを書いています。
私は両方のActiveStateのPerlのインストールをし、Windows上でイチゴPerlでそれをテストしています。
の代わりに私は(私が以前持っている:)そう忘れてしまったかもしれませんが)任意のモジュールをインストールするにはCPANに移動することは覚えていないので、おそらくあなたは、XMLを使用することができます:: XPathのモジュール?
ここにあるドキュメントからのサンプル
use XML::XPath;
use XML::XPath::XMLParser;
my $xp = XML::XPath->new(filename => 'test.xhtml');
my $nodeset = $xp->find('/html/body/p'); # find all paragraphs
foreach my $node ($nodeset->get_nodelist) {
print "FOUND\n\n",
XML::XPath::XMLParser::as_string($node),
"\n\n";
}
あなたはActiveStateのPerlを使用していると仮定すると、あなたは XML :: libxmlのに取得することができますうまく働きます。 あなたはランディKobes'サイトのnoreferrer"> zlatkovic.comする
私はちょうど最初のlibxmlをインストールしてから、XML ::のlibxmlをインストールするには、PPMを使用しています。だけで正常に動作します。
あなたはイチゴのPerl を使用している場合は、は、CPANはなど、libxml2のようあなたのために働くイチゴの一部である必要がありますPerl配布私は信じています。
また、私はActivePerlのためにXML ::のlibxmlをインストールするにはどうすればよいのスレッドのに私のポストを参照してくださいですかます。
私はPPMを使用してXML-のlibxmlをインストール遭遇したいくつかの問題/ソリューションについて説明します。