SimpleXMLメモ

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

返ってくるXMLはこれ

CDATAを取得

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

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

PHP
  1.  <?php
  2.  $sxe = new SimpleXMLElement($xml, LIBXML_NOCDATA);
  3.  $sxe = simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA);
  4.  $sxe = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOCDATA);
  5.  ?>

という感じ。

名前空間の処理

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

参照サイト
名前付きの要素を要求する際に、ローカル名と共に名前空間 URI (Uniform Resource Identifier) を指定する必要がある点です。 これは 2 段階のプロセスです。まず、children() 関数に名前空間 URI を渡すことによって、 対象とする名前空間にある子要素を要求します。次に、その名前空間での正しいローカル名を付けて要素を要求します。
PHP
  1.  <?php
  2.  $xml->children("http://valuecommerce.com/pdb/rss/");
  3.  ?>

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

トラックバック(0)

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。

2012
01.21

[PHP]共有サーバーユーザーのためのPEARインストール方法

共有サーバーでは自由にPEARのパッケージがインストールできないので、 プロジェクトローカルに設置することになりますが、以前httpベースのものを使ってみたんですけど、 やたら重くて使い物にならなかったので、僕は普通にFTPでアップするようにしてます。

ってことでプロジェクトローカルへのPEARのインストール方法。