人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[PHP]simplexml_load_fileについての質問です。
xmlファイルの中は下記のようになっていることを条件にほしいデータを取り出すプログラムをどのように作成すればいいのか行き詰まっています。
abc.xmlの中身です。
***************
<entry>
<id>http://aaa.com</id>
<media:group>
<media:title type="plain">001.JPG</media:title>
<media:content url="http://bbb.com/image/001.JPG" height="1600" width="1200" type="image/jpeg" medium="image"/>
***************
mediaの位置を取得するためのURLはhttp://search.yahoo.com/mrss/としています。
プログラムを作成してみましたが、<media:contentの子ノード部分urlだけ取得できていません。
対処方法を教えていただけるとありがたいです。

●質問者: nzk
●カテゴリ:ウェブ制作
✍キーワード:.jpg ABC URL XML [php]
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tezcello
●60ポイント

あまり美しくないですが、何とかできたようなので。

$str = <<< EOL
<?xml version="1.0" encoding="UTF-8"?>
<entries xmlns:media="http://q.hatena.ne.jp/">
<entry>
<id>http://aaa.com</id>
<media:group />
<title type="plain">001.JPG</title>
<media:content url="http://bbb.com/image/001.JPG" height="1600" width="1200" type="image/jpeg" medium="image"/>
</entry>
<entry>
<id>http://bbb.com</id>
<group />
<title type="plain">001.JPG</title>
<content url="http://ddd.com/image/001.JPG" height="1600" width="1200" type="image/jpeg" medium="image"/>
</entry>
</entries>

EOL;


$xml = simplexml_load_string($str);
$xml->registerXPathNamespace('abc', 'http://q.hatena.ne.jp/');
$res = array_shift($xml->xpath('//entry[id="http://aaa.com"]/abc:content'));

$url = (string)$res['url'];

print $url;

結果は、
http://bbb.com/image/001.JPG

パースエラー等出てきたので、少し xml 部分を変更しています。

こんなのでいかがでしょうか?

http://www.php.net/manual/ja/function.simplexml-element-register...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ