1

iTunes XML フィードから情報を取得するのに問題があります。ここで確認できます: http://c3carlingford.org.au/podcast/C3CiTunesFeed.xml

各内部<item>タグから情報を取得する必要があります。これらの 1 つの例を次に示します。

<item>
    <title>What to do when a viper bites you</title>
    <itunes:subtitle/>
    <itunes:summary/>
    <!-- 4000 Characters Max ******** -->
    <itunes:author>Ps. Phil Buechler</itunes:author>
    <itunes:image href="http://www.c3carlingford.org.au/podcast/itunes_cover_art.jpg"/>
    <enclosure url="http://www.ccccarlingford.org.au/podcast/C3C-20120722PM.mp3" length="14158931" type="audio/mpeg"/>
    <guid isPermaLink="false">61bc701c-b374-40ea-bc36-6c1cdaae8042</guid>
    <pubDate>Sun, 22 Jul 2012 19:30:00 +1100</pubDate>
    <itunes:duration>40:01</itunes:duration>
    <itunes:keywords>
        Worship, Reach, Build, Holy Spirit, Worship, C3 Carlingford
    </itunes:keywords>
</item>

今、私はいくつかの成功を収めました! 私はそれからすべてのタイトルを得ることができました:

<?php 
    $dom = new DOMDocument();
    $dom->preserveWhiteSpace = false;
    $dom->load('http://c3carlingford.org.au/podcast/C3CiTunesFeed.xml');
    $items = $dom->getElementsByTagName('item');

    foreach($items as $item){                       
        $title = $item->getElementsByTagName('title')->item(0)->nodeValue;
            echo $title . '<br />';
    };

?>

しかし、私は他に何も得られないようです... 私はこれらすべてに不慣れです!


だから私が得る必要があるのは次のとおりです:

  1. <itunes:author>値。
  2. <enclosure>タグの url 属性値

誰かがこれらの2つの値を取得するのを手伝ってくれますか?

4

3 に答える 3

5

DOMXPathこれを行うために使用すると、生活がずっと楽になります。

$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->loadXML( $xml); // $xml = file_get_contents( "http://www.c3carlingford.org.au/podcast/C3CiTunesFeed.xml")

// Initialize XPath    
$xpath = new DOMXpath( $doc);
// Register the itunes namespace
$xpath->registerNamespace( 'itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd');

$items = $doc->getElementsByTagName('item');    
foreach( $items as $item) {
    $title = $xpath->query( 'title', $item)->item(0)->nodeValue;
    $author = $xpath->query( 'itunes:author', $item)->item(0)->nodeValue;
    $enclosure = $xpath->query( 'enclosure', $item)->item(0);
    $url = $enclosure->attributes->getNamedItem('url')->value;

    echo "$title - $author - $url\n";
}

デモから、これが出力されることがわかります。

What to do when a viper bites you - Ps. Phil Buechler - http://www.ccccarlingford.org.au/podcast/C3C-20120722PM.mp3
于 2012-07-23T12:53:45.387 に答える
2

はい、simplexml で実行できます。

サンプルコードは次のとおりです。

<?php

 $x = simplexml_load_file("http://c3carlingford.org.au/podcast/C3CiTunesFeed.xml");

  foreach ($x->channel->item as $item) { 
    $otherNode = $item->children('http://www.itunes.com/dtds/podcast-1.0.dtd');  
    echo $item->title .'---'.$otherNode->author;  
    echo "\n";
 } 
?> 

出力:

バイパーに噛まれたときの対処法---Ps. フィル・ビューラー

生ける水よ、川を流せ!フィル・ビューラー

互いに赦し合うようにとの神の呼びかけ AM & PM --- Ps. リチャード・ボッタ

午前と午後の伝道への神の呼びかけ---ロブ・ウォー

互いに愛し合うようにという神の呼びかけ AM & PM --- ロブ・ウォー

この助けを願っています!

于 2012-07-23T14:00:30.607 に答える