ThIs SiTe Is A TyPo AnD A BuG.

[php]simplexml_load_fileでうまくパース出来ない、なんて事はない。& 正解とお手軽方法

ソーシャルブックマークに追加:ブックマークに追加する
Category :
php5にはsimplexml_load_file()なんて便利な関数があるけど、、
Magpie RSS - PHP RSS Parser-を使ってた人からすると若干の癖がある。
たとえば、

http://soccersns.jp/rss/diary.xml

これを

$xml=simplexml_load_file('
http://soccersns.jp/rss/diary.xml');

こんな感じで取得すると、

<title>
<link>
<description>


はパースできるけど

<dc:format>
<dc:date>
<dc:source>
<dc:creator>


は$xmlには含まれていない。
で、
simplexml_load_fileは不完全だと騒ぐ。
で、
これをちゃんと取得するには、、
XMLでの:'コロン'は名前空間を表すので、
$dc=$xml->item[0]->children(名前空間定義のURL);
って感じで指定しなければいけない、
(ちなみに名前空間の定義はXMLのヘッダにxmlns:dc=http://purl.org/dc/elements/1.1/こんな感じで書いてある。)

$dc=$xml->item[0]->children('http://purl.org/dc/elements/1.1/');
echo $dc->format;
echo $dc->date;
echo $dc->source;
echo $dc->creater;

とこんな感じで取得するのが正解なのです。

が、

こんなのめんどくせぇから、
こうする↓

-----------------------------------------------------------------------------------
 $string = preg_replace('/:/','_',file_get_contents(XMLのURL));
 $xml = simplexml_load_string($string);

-----------------------------------------------------------------------------------

ようは名前空間を表す、:'コロン'を違う文字に変えてから
simplexml_load_stringでパース。
ようはパースできればいいわけだから。



この記事にコメントする
NAME:
TITLE:
MAIL:
URL:
COMMENT:
PASS: Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
2年前の記事に今日辿りつきました。
ファンになりそうですw
ssk URL 2009/09/15(Tue)01:47:33 EDIT | RES
amplified trends
causes called 1979 relates science open emitted small
hardynberk URL 2009/10/10(Sat)06:49:07 EDIT | RES
globally records international gas decadal
http://www.achievetexas.org http://www.ptcorp.com
garwyntafo URL 2009/10/10(Sat)06:50:09 EDIT | RES
below contends movit developed functionality
cycles began regional emission vectors comment ces
ludlowhudn URL 2009/10/10(Sat)06:50:27 EDIT | RES
この記事へのトラックバック
この記事にトラックバックする:
MA3楽天賞受賞
ありがとうございます。mash up award 3rdでカラフル.jpが楽天賞を頂きました。
PR
最新コメント
[10/10 ludlowhudn]
[10/10 garwyntafo]
[10/10 candissgoi]
[10/10 hardynberk]
[09/15 ssk]
カレンダー
10 2009/11 12
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
あわせて読みたい
あわせて読みたい
なかのひと
なかのひと
ブログ内検索
ログール
TrackWord
アクセス解析
このページのQRコード
Copyright © .☆★ ステレオタイプラボ ★☆. 。All Rights Reserved.
ブログパーツ忍者ブログ