SimpleXML
第 2 版(2010-03-12 22:24:27 · akkun_choi)を表示しています。 最新版に戻る
PHPでXMLを簡単に読み書きできるようにするライブラリ。
エラー抑制
libxml_use_internal_errors(true); // 抑制開始 libxml_use_internal_errors(false); // 終了
読み込み
間違ってると読めないので、その可能性があるデータはあらかじめtidyで処理しておく。
$xml = simplexml_load_string($str);
第三引数のオプション
http://jp2.php.net/manual/ja/libxml.constants.php
LIBXML_NOCDATA CDATA をテキストノードとしてマージ
LIBXML_NOXMLDECL ドキュメントの保存時に XML 宣言を削除する
文字列にする
キャストする。__toString()でないのがたるい。
$str = (string) $node;
名前空間付XMLを処理する
前提としてxmlnsで名前空間の定義がされてないとparseしてくれないっぽい。こういうの
<root xmlns:dc="http://purl.org/dc/elements/1.1/></root>
で、getDocNamespacesで名前空間取得して、registerXPathNamespaceするって書いてるとこあるけど、$node->children($namespaceUri); で取れました!(5.2.10で確認)
dc:dateのみ取得
foreach ($xml->item as $item){
echo (string) $item->children($ns['dc'])->date;
}