タグ

xmlとperlに関するpipeheadのブックマーク (6)

  • iandeth. - XML::Simple は遅い説における意外な落とし穴 - おまけ編

    iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. 目次: 背後で利用している XML::SAXパーサーの確実な確認方法 $/ 変数の状態によって利用パーサーが変わる妙について 背後で利用している XML::SAXパーサーの確実な確認方法 基的な確認方法は前回記事にて記述しましたが、より確実に、コード実行時に利用しているパーサーが何なのかを確かめたい場合は、ちと泥臭いですが、以下のように XML::Simple のソースコードに直接追記する事で確認できます。 XML::Simple (Simple.pm) の build_tree 関数の以下の箇所(v2.14ならば281-283行目)に $XML::SAX::ParserPackage = $preferred_parser i

  • XML::Simple は遅い説における意外な落とし穴 (iandeth.)

    「XML::Simpleは処理速度が遅い」説といえばNDO::Weblogさんの記事 Perl で XML の処理はどれが速いかベンチ がすぐに思い浮かびます。初見した時はずいぶん感心した覚えがあり、以来、業務で XML::Simple を使う事に多少なりとも躊躇するようになったものです。そんな中、現在仕事で XML parsing with Perl な案件を受け、CPANにUPされている様々な XML 解析系モジュールの処理速度を計測しているのですが、その際気付いた、XML::Simple の意外な落とし穴についてまとめてみました。 目次: まとめ デフォルトで呼ばれるXML::SAXパーサーの確認方法 ベンチマーク比較 関連情報 まとめ だらだら説明するのもナンなので、いきなり結論から。XML::Simple は、デフォルトの状態だと XML::SAX がインストールされている場合、

  • XML::Simple におけるパーサーの実行速度比較 - naoyaのはてなダイアリー

    XML::Simple は、どんな XML でも Perl のデータ構造に自動変換してくれるかなり便利なモジュールなのですが、中でツリーを解析したりいろいろやってるせいもあって、速度的にはあまり誉められたものではありません。以前に Perl で XML の処理はどれが速いかベンチ で比較したときには、随分遅いなという印象でした。 ただ、XML::Simple はその中で利用するパーサーを色々切り替えられるようになっています。じゃあそれを切り替えたら少しは速くなるんだろうかと気になってベンチを取ってみました。 XML::Simple は $XML::Simple::PREFERRED_PARSER に任意の SAX パーサーを指定するとそれを使ってパースするようになっています。 XML::LibXML::SAX XML::SAX::Expat XML::SAX::ExpatXS XML::P

    XML::Simple におけるパーサーの実行速度比較 - naoyaのはてなダイアリー
  • iandeth. - XML::Simple の使い方 part.2

    search.cpan.org XML::Simple ↑基的な使い方はCPANにすべて記載されてます(当たり前)。 ですので作者人も触れていない、「日語を含んだXML」をXML::Simpleで取り扱う際のポイントをココで紹介してみようかと思います (仕事で使う際にbashi人が調べて気づいた事のみになりますが)。 ※文字コード「EUC-JP」または「SHIFT_JIS」の日語を扱う場合のみ下記指摘は該当します。「UTF8」の日語文字のみ使用している場合は問題無いように見えます。 XML → Perl で、前回の続き。 XMLヘッダタグをつけてあげると日語を含むXMLデータも正常に XMLin メソッドで取り込める、という所まで前回書きました。では今回は取り込んだ後のPerl構造体について。実際に取り込んだ後の構造体を出力してみると不具合は一目瞭然です。 ※以下、文字コード

  • [ Perl & XML ] XML::Simple の使い方 : iandeth.

    search.cpan.org XML::Simple ↑基的な使い方はCPANにすべて記載されてます(当たり前)。 ですので作者人も触れていない、「日語を含んだXML」をXML::Simpleで取り扱う際のポイントをココで紹介してみようかと思います (仕事で使う際にbashi人が調べて気づいた事のみになりますが)。 ※文字コード「EUC-JP」または「SHIFT_JIS」の日語を扱う場合のみ下記指摘は該当します。「UTF8」の日語文字のみ使用している場合は問題無いように見えます。 Perl → XML use XML::Simple; my $p = { bronze => { dragon => "shiryu", pegasus => "seiya", phoenix => "ikki" } }; my $x = new XML::Simple; my $xml = $x

  • iandeth. - XML::Parser と encoding指定について

    Perl XMLでencoding='Shift_JIS'や'euc-jp'を使う Hippo2000さんの上記ページにお世話になったのでご紹介。 PerlでXML扱う際におそらく使う事になるであろう XML::Parser モジュールですが、標準インストールの状態ではエンコーディング指定が EUC-JP や Shift_JIS になっているXMLを読み込むとエラーになります(XMLのヘッダ情報が以下のようになっているもの)。 <?xml version="1.0" encoding="euc-jp" ?> または <?xml version="1.0" encoding="shift_jis" ?> なのでこれらのXMLを XML::Parser にて読み込む為に必要な処置/対策が Hippo2000さんのページにて簡潔に述べられています。感謝〜。 ※XML::SimpleやXML::D

  • 1