XML ライブラリ
PHP4で使えるXMLライブラリを使っています。Keith Devensによるオープンソースで、110ステップのコンパクトなものです。
もともとは、AmazonのWebサービスをPHPで処理するために使い始めました。
PHP5からはXMLが利用できますが、私の使っているホスティングは、まだPHP4。
ライブラリはXMLのunserialize(XMLのテキストからPHPの配列への変換)と逆のserializeがあります。
使っているのはunserializeの方で、重宝しています。
ところが、今日、困った問題が・・・。
smartyのテンプレート内で、連想配列を参照するときに、{$a.b}と書きます。aが配列で、bがキーです。
ところが、XMLライブラリでunserializeするときに、例えば、<Length Units=cm>19</Length>
はa[Length attr][Units]="cm"、a[Length]=19という配列になります。
これをsmartyで参照するときに困りました。キーの途中に空白が入っているのです。
いろいろ試みた末に、smarty側で対処するのはあきらめて、XMLライブラリ側で、Length_attrとなるように変更しました。
これにて一件落着です。


コメントする