simpleXMLでsjisの日本語タグも扱えるらしい。
simpleXMLでShift_JISの日本語タグも扱えるらしい、とのことで。
シフトJISでマルチバイトなタグで構成されたXMLファイルがsimplexmlで扱えるのか試してみた。結果からいうと「すごい!」「使える!」。
http://php.tekmemo.net/?p=967
DOMでも使えるか確認してみたくなった。せっかくなので、Zend_Dom_Queryと同様のクエリが使えるか試した。
5Cがうまく扱えるのかが気になるところだったので、こんな感じにしてみた。もちろんXMLの文字コードはShift_JISにして保存してある。
<?xml version="1.0" encoding="shift_jis"?> <ルートノード> <アイテム一覧> <アイテム> <タイトル>ほげ1</タイトル> <本文>うわー</本文> </アイテム> <アイテム 属性="能"> <タイトル>ほげ2</タイトル> <本文>うわー</本文> </アイテム> <アイテム> <タイトル>ほげ3</タイトル> <本文>うわー</本文> </アイテム> </アイテム一覧> </ルートノード>
これをDOMで読み込んで、タグクエリーにかけて抽出してみる。
<?php $dom = new Zend_Dom_Query("test.xml"); $results = $dom->query('アイテム'); foreach ($results as $result) { $result->setAttribute('test', 'hoge'); } echo mb_convert_encoding($dom->saveXML(), "UTF-8", "Shift_JIS");
これで、能も含んだアイテム一覧を取り出すことができた。
何に使う?かよくわかりませんが、タグとかカテゴリーに使うのは面白いかもしれない。