LibXMLのエラーについて

このQ&Aのポイント
  • XMLファイルの読み込み処理をテストしている際に、LibXMLが正常に動作しないエラーが発生しています。
  • インストールと実行の手順が正しく行われているか確認しましたが、原因が特定できません。
  • 解決策が分かる方、または同じ問題に直面したことのある方は、ご教授いただけないでしょうか?
回答を見る
  • ベストアンサー

LibXMLのエラーについて

こんにちは。 XMLファイルを読み込む処理をテストしているのですがlibXMLが動作してくれません。 次の手順でインストール~実行したのですが何がいけないのでしょうか? どこか問題点がありましたら教えてください。 LibXMLは「/usr/local/lib/perl/5.8.4/auto/XML/LibXML」に見えます。 (perlを始めたばかりなので他に必要な情報がありましたらコメント下さい。) 1.libxml2-2.6.23.tar.gzをインストール 2.CPANでXML::LibXML、関連モジュールをインストール 3.次のコードを実行 #!/usr/local/bin/perl use XML::LibXML; my $parser = XML::LibXML->new; my $xmlfile = $parser->$contents; print Dumper($xmlfile)."\n"; ※$contentsには単純なXMLフォーマットのデータが入っています。 4.エラーが表示される Can't locate auto/XML/LibXML/<?xml version="1.0" encoding="euc-jp" ?> : :(XMLファイルの内容) : .al in @INC (@INC contains: perllib /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at perllib/testperl.pm line 10

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

XML::LibXML は使ってないのだけど >my $xmlfile = $parser->$contents; は、 my $xmlfile = $parser->parse_string($contents); の間違いだと思う

tarabazushi
質問者

お礼

ありがとうございます。 BLUEPIXYさんの仰るとおり「parse_string」が抜けていました。 これでなんとか動作するようになりました。 あとはXML::LibXMLの仕様なのでもう少し調べてみます。

関連するQ&A

  • XML-LibXML-1.58のインストールでlibxml/xmlversion.hが 無いというエラー

    Active Perl5.8を使っております。 XML::SimpleObjectモジュールを使おうと、 CPANから XML-SimpleObject-LibXML-0.60.tar.tar XML-LibXML-1.58.tar.tar をダウンロードし, XML-LibXML-1.58のインストールで とすると、libxml/xmlversion.hが 無いというエラーで困っております。 どのようにすれば良いのでしょうか?

    • ベストアンサー
    • Perl
  • Jcodeのインストールのエラー

    Jcodeのインストールのエラー jcodeをインストールしたのですが、以下のURLの通りにいきません。 http://openlab.ring.gr.jp/Jcode/index-j.html サーバーのOS:CentOS 6 x86_64 サクラレンタルサーバーです。 解決法を分かる方は、教えて下さい。 エラー文は、以下の通りです。 # perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .). BEGIN failed--compilation aborted.

  • Expat.soが読めない!?

    XML::Parser 2.34 をインストールしました。 rootになれないレンタルサーバーですので、 ユーザーディレクトリ配下にインストールしました。 エラーは出ていません。 が、使用時に、 use XML::Parser; の行で下記エラーになります。 Can't load '/usr/home/USERNAME/perl/lib/i386-freebsd/auto/XML/Parser/Expat/Expat.so' for module XML::Parser::Expat: Shared object "libexpat.so.6" not found, required by "Expat.so" at /usr/…/DynaLoader.pm line 169. at /usr/home/USERNAME/perl/lib/i386-freebsd/XML/Parser.pm line 14 「DynaLoader.pm」は、システムのperlライブラリを参照してるようです。 もちろん-Iオプションで、 インストールしたライブラリパスを指定しています。 インストールは下記要領で、Expat-2.0.0からインストールしました。 <Expatのインストール> > ./configure --prefix=/usr/home/USERNAME/perl/lib > make > make install <XML::Parserのインストール> > perl Makefile.PL LIB=/usr/home/USERNAME/perl/lib EXPATLIBPATH=/usr/home/USERNAME/perl/lib/lib EXPATINCPATH=/usr/home/USERNAME/perl/lib/include INSTALLMAN1DIR=/usr/home/USERNAME/perl/lib/man1/ INSTALLMAN3DIR=/usr/home/USERNAME/perl/lib/man3/ > make > make install 気になるのが、Expatのconfigure実行後のMakefileで、  ifndef INSTALL_ROOT  INSTALL_ROOT=$(DESTDIR)  endif この部分がmake時にエラーになるのでコメントアウトしたことです。 INSTALL_ROOTは、--prefixで指定したディレクトリの前に付けて 使用しているので、無くて問題ないと判断したのですが…。 Expatのインストールに問題がある。というのは何となく分かるのですが、 どうすれば良いのかが分かりません。m(__)m perl 5.003です。

  • perlをバージョンUPしたらWebService::Simple::Parser::JSONが使えなくなったのですが

    plaggerを使ってみ用と思い、結果的には断念しているのですが、 副作用として、WebService::Simple::Parser::JSONが使えなくなったのですが、どなた様かご教授願えませんでしょうか # yum -y install perl* # yum -y install libxml* # yum -y install expat* gcc などの開発環境もインストールしておく # yum install ccp gcc* autoconf* automake* libtool m4 GD や JPEG ライブラリなどもインストール # yum install gd gd-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel # perl -v This is perl, v5.8.9 built for i686-linux それまで使えていた、WebService::Simple::Parser::JSONが # perl -e'$pm=shift;eval "use $pm";$pm=~ s/^.+$/\$$&::VERSION/;$v=eval $pm;printf("%-30s = %-20s\n",$pm,$v)' WebService::Simple::Parser::JSON $WebService::Simple::Parser::JSON::VERSION = とバージョンが出ない状況で、以前のperl5.8.8では使えていたのが認識してくれていないようです。 試しに、 #cd .cpan/build/WebService-Simple-0.16-4kBhep #cat README の手順でインストールしてみても、状況は変わりません。 @INCの検索順かなと思い、 # find `perl -e 'print "@INC"'` -name 'JSON.pm' -print /usr/local/lib/perl5/site_perl/5.8.9/WebService/Simple/Parser/JSON.pm /usr/local/lib/perl5/site_perl/5.8.9/JSON.pm /usr/local/lib/perl5/site_perl/5.8.9/WebService/Simple/Parser/JSON.pm /usr/local/lib/perl5/site_perl/5.8.9/JSON.pm ./blib/lib/WebService/Simple/Parser/JSON.pm ./lib/WebService/Simple/Parser/JSON.pm で調べた後、 # mv /usr/local/lib/perl5/site_perl/5.8.9/WebService/Simple/Parser/JSON.pm /usr/local/lib/perl5/site_perl/5.8.9/WebService/Simple/Parser/JSON.pm.bak リネームしても、やはり同様に認識されておりません。 またperlをダウングレードしようと色々検索してみたのですが、 # yum -y install perl*としてしまっている為、関連するものすべて調べるのも困難な為、断念しております。 どうすれば解決できますか、先輩方ご教授ねがえませんでしょうか。 お助け頂けますと幸いです

  • DBIをCPANからインストール時にエラーが発生します??

    DBIモジュールを、CPANからインストールしたところ、 以下の様な■エラーコード:35 ■が発生します。 これは、何が原因なのでしょうか? それとも、これで正常にインストールされているのでしょうか? 対処法をお願い致します。 メッセージ)※一部、割愛 .............Can't locate Storable.pm in @INC (@INC contains: blib/arch blib/lib /usr/local/lib/perl5/5.6.1/i386-freebsd /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.00503 /usr/local/lib/site_perl .) at t/11fetch.t line 8. BEGIN failed--compilation aborted at t/11fetch.t line 8. Can't locate Storable.pm in @INC (@INC contains: blib/arch blib/lib /usr/local/lib/perl5/5.6.1/i386-freebsd /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.00503 /usr/local/lib/site_perl .) at t/11fetch.t line 8. BEGIN failed--compilation aborted at t/11fetch.t line 8. ...propagated at t/zvpp_11fetch.t line 4. ***■ Error code 35 ■ Stop in /.cpan/build/DBI-1.48. /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force cpan>

    • ベストアンサー
    • Perl
  • Perl,relocation error!

    Linux上であるPerlのプログラムを実行させると perl:relocation error: /usr/lib/perl5/site_perl/5.005/i686-linux/auto/XML/Parser/Expat/Expat.so :undefined symbol :Perl-safemalloc というエラーメッセージがでます。自分でも調べていますが正直どう対処していいかわかりません。 これはどういうことを表していて、どう対処すればいいのでしょうか?

  • MovableType5のエラー文を教えて下さい。

    お世話になります。ご質問させてください。 OCNのスタンダードプランにMovabletType5.02をFTPでアップロードしてmt.cgiにアクセスしました。ログインをクリックすると下記のエラー文が表示されます。エラー文はどのような意味なのでしょうか?また、解決方法をご存知の方は教えて下さい。 ちなみにmt-check.cgiにアクセスすると500エラーが表示されます。 パーミションを変更しても500エラーが表示されます。 他のサーバーにはMTを何回もインストールして設定したこともあります。 宜しくお願い致します。 Got an error: Can't locate Encode.pm in @INC (@INC contains: /usr/home/○○○/www/htdocs/mt/extlib lib /usr/local/lib/perl5/5.6.1/i386-freebsd /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl/5.6.0/i386-freebsd /usr/local/lib/perl5/site_perl/5.6.0 /usr/local/lib/perl5/site_perl/5.005/i386-freebsd /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl .

    • ベストアンサー
    • CGI
  • 添付ファイル保存perlの実行エラー

    お世話になります。 perl初心者です。 以下ののサイトから拾ってきたスクリプトを実行したところ、エラーがでて上手く実行されません。 http://www.jp-z.jp/perlmemo/parse_MIME-Parser_multipartmail.html ----- #!/usr/bin/perl use MIME::Parser; new MIME::Parser->parse(\*STDIN); ----- error message: Can't locate auto/Mail/Internet/autosplit.ix in @INC(@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:/Perl/lib/AutoLoader.pm line 100. at C:/Perl/lib/Mail/Internet.pm line 10 autosplit.ixが存在しないのかと思ったのですが、モジュールではないようなのでどうインストールするのかもよくわかりません。 詳しい方いらっしゃいましたらお助けください。。

  • Perlのモジュールが極端に少ない

    OS(CentOS 6.2 / 64bit)にデフォルトでインストールされているPerl(version 5.10.1)を使って勉強しているのですが、参考書に記載されているメジャーなモジュールがインストールされてなく、困っています。 自分でインストールする必要があるのかと思い、モジュールのインストール方法を調べたところ、CPANというモジュールを使えば簡単にモジュールがインストールできると知ったのですが、このCPANモジュールも入っていない模様。 ではまずはCPANモジュールから手動でインストールしようかと思ったところ、CPANモジュールインストール時のMakefile.PLを実行すると、ExtUtilsというモジュールが無いと怒られてしまい実行できませんでした。 このような場合、通常よく使われるようなモジュールをまとめてインストールするような方法は無いのでしょうか。 ※ちなみに、@INCでは以下のディレクトリが登録されていました。 ・/usr/local/lib64/perl5 ・/usr/local/share/perl5 ・/usr/lib64/perl5/vender_perl ・/usr/share/perl5/vender_perl ・/usr/lib64/perl5 ・/usr/share/perl5

    • ベストアンサー
    • Perl
  • cpanからモジュールをインストール後

    お世話になります。 ネットで調べcpanからモジュールをインストールしました。 # su - # perl -MCPAN -e shell 最初の起動時に質問が出てきてリターンと少しの設定後、 cpan>install XML::RSS # find `perl -e 'print "@INC"'` -name 'RSS.pm' -print ./.cpan/build/XML-RSS-1.05/lib/RSS.pm ./.cpan/build/XML-RSS-1.05/blib/lib/XML/RSS.pm の形でインストールされているのを確認しました。 で、その後、perlのCGIの方で実行すると、 Can't locate XML/RSS.pm in @INC (@INC contains: ./mylib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at rss.cgi line 10. BEGIN failed--compilation aborted at rss.cgi line 10. になってしまうんですが、次はどうすればよいのでしょうか

    • ベストアンサー
    • Perl