valuecommerceのAPIを叩いて返ってくるXMLを SimpleXMLを利用してパースしようとしたら、 うまくできない部分があった。
返ってくるXMLはこれ
オプションを指定せずコンストラクタやパースする関数を実行した場合、 CDATAを取得できない。
CDATAを取得するにはLibxmlパラメータにLIBXML_NOCDATAを指定すると取得できるようになる。
という感じ。
<vc:○○>こんなやつに挟まれてるのも$xml->children()では取得できない。
名前付きの要素を要求する際に、ローカル名と共に名前空間 URI (Uniform Resource Identifier) を指定する必要がある点です。 これは 2 段階のプロセスです。まず、children() 関数に名前空間 URI を渡すことによって、 対象とする名前空間にある子要素を要求します。次に、その名前空間での正しいローカル名を付けて要素を要求します。
という風にすると取得できる。
| 投稿日 | 2009年4月17日 21:06 |
|---|---|
| カテゴリ | PHP |
| タグ | 関数 |
| トラックバック URL | http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1165 |