スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • [--/--/-- --:--]
  • スポンサー広告 |
  • トラックバック(-) |
  • コメント(-) |
  • この記事のURL |
  • TOP ▲

XML::Simpleにおけるname, key, idタグの扱い 

XML::Simpleで<name>タグがちゃんとパースできない!
としばらく嵌ってしまった。
perldocを読んでいたら、以下の記述が。



Note 1: The default value for ’KeyAttr’ is [’name’, ’key’, ’id’]. If
you do not want folding on input or unfolding on output you must set-
ting this option to an empty list to disable the feature.




つまり、デフォルトでは

<info>
<member>
<name>hogehoge</name>
<number>100</number>
</member>
</info>

は、以下のようにパースされる。

{
'member' => {
'hogehoge' => {
'number' => '100'
}
}

これを、nameをキーとして括り出してほしいときは、KeyAttrに空配列を指定すればよい。
パーサをこんな感じに設定すると、

$parser->XMLin ($xml, KeyAttr => []);

上記XMLはこうなる。

{
'member' => {
'name' => 'hogehoge'
'number' => '100'
}
}


name, key, idタグを含むXMLを、XML::Simpleで扱う場合には注意!


モダンPerl入門 (CodeZine BOOKS)
牧 大輔
翔泳社
売り上げランキング: 1173

  • [2008/03/06 18:43]
  • 技術メモ |
  • トラックバック(0) |
  • コメント(0) |
  • この記事のURL |
  • TOP ▲

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。