2009年04月17日 21:06

SimpleXMLメモ

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/455

valuecommerceのAPIを叩いて返ってくるXMLを SimpleXMLを利用してパースしようとしたら、 うまくできない部分があった。

返ってくるXMLはこれ

CDATAを取得

オプションを指定せずコンストラクタやパースする関数を実行した場合、 CDATAを取得できない。

CDATAを取得するにはLibxmlパラメータにLIBXML_NOCDATAを指定すると取得できるようになる。


$sxe = new SimpleXMLElement($xml, LIBXML_NOCDATA);
$sxe = simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA);
$sxe = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOCDATA);

という感じ。

名前空間の処理

<vc:○○>こんなやつに挟まれてるのも$xml->children()では取得できない。

参照サイト
名前付きの要素を要求する際に、ローカル名と共に名前空間 URI (Uniform Resource Identifier) を指定する必要がある点です。 これは 2 段階のプロセスです。まず、children() 関数に名前空間 URI を渡すことによって、 対象とする名前空間にある子要素を要求します。次に、その名前空間での正しいローカル名を付けて要素を要求します。

$xml->children("http://valuecommerce.com/pdb/rss/");

という風にすると取得できる。

PHPフレームワーク Zend Framework入門

著者 : 藤野 真吾 / 金額 : ¥ 2,919

SimpleXMLメモタグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/455
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ