質問

唯一の例外コードは、思ったことで古い動作しなくなっ用(非推奨クラス).すべてが必要であることが基本性:

  1. 読み込みとからXMLを解析ファイル

  2. を定義するSAXイベントハンドラ(s)

  3. 読書の属性またはテキストの値の要素のイベントハンドラ

役に立ちましたか?

解決

どの配布についても?

XML::LibXMLの配布ページ をクリックし 閲覧.

次の点に注意してください注意の 文書:

現在XML::LibXMLの提供を心がけ、不完全なインターフェースlibxml2のネイティブSAXの実装です。現在の実装は、未確認生産環境です。あなメモリーの問題は間違い行動である。

もあります XML::SAX 付属 素敵な書類.使ったので少し時間です。

他のヒント

シナンの提案は良かったが、それはすべてのドットを接続していませんでした。ここで私は一緒に石畳非常に単純なプログラムがあります:

ファイル1:ハンドラ(MySAXHandler.pm)

  package MySAXHandler;
  use base qw(XML::SAX::Base);

  sub start_document {
    my ($self, $doc) = @_;
    # process document start event
  }

  sub start_element {
    my ($self, $el) = @_;
    # process element start event
    print "Element: " . $el->{LocalName} . "\n";
  }

1;

ファイル2:テストプログラム(test.pl)

#!/usr/bin/perl

use strict;
use XML::SAX;
use MySAXHandler;

my $parser = XML::SAX::ParserFactory->parser(
        Handler => MySAXHandler->new
);

$parser->parse_uri("some-xml-file.xml");

注:要素の属性の値を取得する方法。これは私が使用できるように記述されていませんでした。これは、構文を把握するために時間かけて連れて行ってくれました。ここにあります。インデックス:私のXMLファイルでは、属性がSSでした。 SS =「壷:スキーマ - マイクロソフト - com:office:スプレッドシートの」SSの名前空間の定義がのxmlnsました。このように、愚かなインデックス属性を得るために、私はこれを必要に応じます:

my $ssIndex = $el->{Attributes}{'{urn:schemas-microsoft-com:office:spreadsheet}Index'}{Value};

それは苦痛だった。

XML ::のlibxml ::サックスはのPerl SAXインタフェースを実装しています素敵な文書ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top