RSS/SEO/Google/マッシュアップ/ちょっとした豆知識/エンタメ系など
fkoji.com > F.Ko-Jiの「一秒後は未来」 > SimpleXMLでCDATAを取得したいときはLIBXML_NOCDATAを使う
2008 07 21

SimpleXMLでCDATAを取得したいときはLIBXML_NOCDATAを使う

スポンサード リンク

Yahoo!知恵袋のAPIをさわっていて、レスポンスに含まれるCDATAがSimpleXMLで取得できてないことに気づきました。

APIを叩くために汎用の自前クラスを利用しているのですが、その中で

$res = @simplexml_load_string($xml);
$res = @simplexml_load_file($url);

このように simplexml_load_string と simplexml_load_file を使っていたのですが、これではCDATAを無視してしまうようです。

リファレンスによると第3引数に追加のLibxmlパラメータを指定することができて、そのパラメータの一つである LIBXML_NOCDATA というオプションを指定すると、CDATAをテキストデータとして取得することができるようです。

» PHP: simplexml_load_file - Manual
» PHP: 定義済み定数 - Manual

なので、先のコードは次のように修正してあげました。

$res = @simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$res = @simplexml_load_file($url, 'SimpleXMLElement', LIBXML_NOCDATA);

ちなみに第2引数は返されるオブジェクトのクラス名で、もしSimpleXMLElementクラスを継承したクラスを自作していればそのクラス名を指定できるらしいです。なので通常は 'SimpleXMLElement' を指定しておけば大丈夫です。

はてなブックマーク数 livedoor クリップ Buzzurl

English version

「SimpleXMLでCDATAを取得したいときはLIBXML_NOCDATAを使う」を携帯で読む

前のエントリー: « マックベーカリーのメロンパンに失望した
次のエントリー: ブログ通信簿を使ってみると »

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(承認されるまでコメントは表示されません。)




このブログをRSSリーダーで簡単購読
Subscribe with livedoor Reader Add to Google My Yahoo!に追加 Subscribe with Fastladder Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録

タイトル:

URL:

リンク用HTMLタグ:

powered by Google Chart API

梅酒コミュニティサイト

梅酒.in

なんかいろいろ

このブログの読者はこんなブログも読んでます。
あわせて読みたい

はてなブックマークカウンター

track feed

フィードメーター - F.Ko-Jiの「一秒後は未来」

スカウター : F.Ko-Jiの「一秒後は未来」




Firefox meter



携帯からのアクセスは

QRコード
http://mob.fkoji.com/