2

これはこれまでの私のコードです...言うまでもなく、それは機能していません:(

$feed = <<< THEXML

<programs>
<program>
<date>2009-04-16</date>
<start_time>17:00</start_time>
<leadtext>hello hello!
</leadtext>
<name>Program 1</name>
<b-line>Comedy</b-line>
<synopsis>Funny stuff
</synopsis>
<url>http://www.domain.tld/program_name</url>
</program>
<programs>
THEXML;


$xml  = (array) simplexml_load_string($feed);

print_r($xml);exit;

助けていただければ幸いです。php.netサイトを何時間も見ていて、頭がおかしいと感じています。

上記の例のxmlには1つしかないことに注意してください

 <program>...</program>

タグですが、実際には、使用する必要のあるものが1つ以上あります。例えば

 <programs>
 <program>...</program>
 <program>...</program>
 <program>...</program>
 </programs>

動作させることができればループできると思いましたが、ここで何をしようとしているのかを説明しようと思いました。

前もって感謝します!

4

2 に答える 2

2

プロバイダーが有効なXMLを提供すると仮定すると、プログラムを反復処理し、次のように必要な情報を使用する必要があります。

<?php
foreach ( $xml as $node ) {
    echo $node->synopsis;
    //or whatever property you want to access on the SimpleXMLElement Object
}

正しいXMLがないため(閉じられていない<programs>タグであるため、次のようにそのエラーを修正するようにスクリプトを変更することをお勧めします。

$feed = preg_replace('/<programs>$/', '</programs>', trim($feed));
于 2012-10-30T03:23:53.823 に答える
2

終了終了タグがありません。

$feed = <<< THEXML

<programs>
<program>
<date>2009-04-16</date>
<start_time>17:00</start_time>
<leadtext>hello hello!
</leadtext>
<name>Program 1</name>
<b-line>Comedy</b-line>
<synopsis>Funny stuff
</synopsis>
<url>http://www.domain.tld/program_name</url>
</program>
</programs> // <========= here
THEXML;
于 2012-10-30T03:31:30.393 に答える