名前空間を含む RSS フィードがあります。通常のノードとともに名前空間情報を結果に表示する必要があります。私はxpathを試していますが、行き詰まっており、必要なことを実行する答えが見つからないようです(または、少なくとも私が理解しているもの-彼らは私の質問に答えている可能性があり、私はそれを理解していません.)
これが私のRSSフィードです(余分なノードを削除するためにいくつか編集しています):
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<item>
<title>...</title>
<link>...</link>
<description>...</description>
<author>...</author>
<pubDate>05/14/2008</pubDate>
<media:content url="http://www.url.com">
<media:title>...</media:title>
</media:content>
</item>
<item>
<title>...</title>
<link>...</link>
<description>...</description>
<author>...</author>
<pubDate>06/17/2008</pubDate>
<media:content url="http://www.url.com">
<media:title>...</media:title>
</media:content>
</item>
</channel>
これまでのコードは次のとおりです。
if (file_exists($filePath)) {
$items = simplexml_load_file($filePath);
$items->registerXPathNamespace("media","http://search.yahoo.com/mrss/");
$items = $items->xpath('//item');
usort($items, "toSort"); // sorts using an included function
// output the file
foreach($items as $item) {
echo '<div class="grayBx">';
echo $item->content->attributes()->url;
echo '<h2>' . $item->title . '</h2>';
echo '<p>' . $item->description . '</p>';
echo '<p><a href="' . $item->link . '">read more >></a></p>';
echo '</div>';
echo '<div class="clearBoth"> </div>';
}
}
現在、私が理解しているように、xpath は simplexml_load_file を配列型に変更し、ほとんどの場合、検索をより簡単/高速にします。問題は、xPath を使用すると media: 名前空間が結果から取り除かれ、メディアの結果はサムネイルが保存される場所であり、ページに画像を表示する必要があることです。
私は立ち往生しており、これが正しい道であるかどうかさえわかりません。誰でも助けることができますか?