0

phpを使用してRSSフィードを取得しようとしています。xmlには多くの異なるノードがあります。<dc:>,<rdf:>,<syn:>ノードの表示方法がわかりません。

<item>xxx</item>
....
....
<dc:name>John</dc:name>    //I am not sure how to get this content
<dc:title>Manager</dc:title>
<syn:updateTime>1970-01-01</syn:updateTime>
<rdf:Seq>
   <rdf:li rdf:resource="http://xxx/>
   <rdf:li rdf:resource="http://xxx/>
</rdf:Seq>

php

$contents= file_get_contents($url);

$results=new SimpleXMLElement($contents);

    //not sure what I can do to display those special nodes...
    foreach ($results->channel as $node):

        echo $node->item; //only show item content  

    endforeach;
4

2 に答える 2

2

これを試して:

$xmlStr= simplexml_load_string($contents);

次に、print_rを使用してオブジェクトをダンプできます$xmlStr

echo print_r($xmlStr)

または眉毛で

echo "<pre>".print_r($xmlStr)."</pre>";

このようにして、それがあなたがやろうとしていることであるかどうか、あなたはオブジェクトを検査することができます。個々の値/ノードにアクセスするには:

echo $xmlStr->node

そしてそれはノードの内容を返すはずです。

これを行うとどうなるかわかりませんが、次のことも試すことができますが、$xmlStrおそらく内容によって異なります...:

foreach($xmlStr as $key => $value) {
    print "$key => $value\n";
}
于 2012-07-04T02:21:28.177 に答える
1

標準に準拠したRSSフィードの場合は、simplepieなどを使用してみませんか?専用のパーサーは、ほとんどの場合、独自のパーサーをロールするよりも優れています:)

于 2012-07-04T02:56:33.013 に答える