XML::Grove::AsStringモジュール(日本語チョー訳)

by Hippo2000(1999/12/23)

XML::Grove::AsStringモジュールなのです。

なおこのドキュメントはXML::Groveモジュールをインストールしたときに一緒にはいるドキュメントを日本語に訳そうとしたものです。わかりにくい部分は本物を見てください。(^^;;

原本の著作権はKen MacLeod氏がお持ちです。
Ken MacLeodさんにはメールで了解をいただきました。

なお内容等が間違っていたら修正します。ご連絡ください。


目次


名前

XML::Grove::AsString - XMLオブジェクトの内容を文字列で出力します。


概要

 use XML::Grove::AsString;
 # XML::Grove::DocumentまたはXML::Gorve::Elementにas_stringメソッドを使う:
 $string = $xml_object->as_string OPTIONS;
 $string = $element->attr_as_string $attr, OPTIONS;
 # XML::Grove::AsString インスタンスを使う:
 $writer = new XML::Grove::AsString OPTIONS;
 $string = $writer->as_string($xml_object);
 $writer->as_string($xml_object, $file_handle);

説明

XMLオブジェクトに'as_string'を呼び出すと、そのオブジェクトの配下にあるすべての要素を含んだ、そのオブジェクトの文字データの内容を返します。要素に'attr_as_string'を呼び出すと、名前の付いた属性の内容を文字列として返します。コメント、処理命令そしてデフォルトではエンティティのすべては空文字列を返します。

OPTIONS には以下に説明するオプションが入った、キーと値のリストまたはハッシュで指定することができます。OPTIONS はオブジェクトで直接変更すともできます。デフォルトのオプションはフィルタはなく(no filtering)、エンティティは空文字列に対応付けられます。


オプション

Filter
'Filter'は返される文字列に追加される前に、文字データを処理するために呼び出される無名サブルーチン(anonymous sub) です。これは例えば、出力形式で特別な文字をエスケープするために使われます。'Filter'サブルーチンは以下のように呼び出されます:
    $string = &$filter ($character_data);
EntityMap
'EntityMap' はエンティティの置き換えテキスト(データ)とmapperオプションを引数として呼び出される'lookup'メソッドや無名サブルーチンを受け取るオブジェクトで、対応する置換文字を返します。
オブジェクトであれば、以下のように呼び出されます:
    $replacement_text = $entity_map->lookup ($entity_data,
                                             $entity_map_options);

サブルーチンであれば以下のようになります:

    $replacement_text = &$entity_map ($entity_data,
                                      $entity_map_options);
EntityMapOptions
'EntityMapOptions' は'lookup'メソッドや無名サブルーチンに渡されるハッシュです。値のタイプはエンティティ・マッピング・パッケージまはた無名サブルーチンによって定義されます。
EntityMapFilter
'EntityMapFilter' はマップされたエンティティがマップの後、フィルターにかけられるかどうかを示すフラグです。

使用例

これはText::EntityMapモジュールを使ったエンティティ・マッピングの例です:

    use Text::EntityMap;
    use XML::Grove::AsString;
    $html_iso_dia = Text::EntityMap->load ('ISOdia.2html');
    $html_iso_pub = Text::EntityMap->load ('ISOpub.2html');
    $html_map = Text::EntityMap->group ($html_iso_dia,
                                        $html_iso_pub);
    $element->as_string (EntityMap => $html_map);

作者

Ken MacLeod, ken@bitsko.slc.ut.us


参考資料

perl(1), XML::Grove(3)

Extensible Markup Language (XML) <http://www.w3c.org/XML>


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。