2011-12-06 7 views
1

にsimple_load_xmlと同じ名前を持つXML要素を選択しますか?彼らは同じ名前を持っています。 <title>を選択するには、私は単純に、この操作を行います。私はこのような(簡体字)XMLを持っているPHP

$xml = simplexml_load_file("theurltomyxml.xml"); 
$article = $xml->article; 
$title = $article->title; 

をしかし、どのように、私は、画像を得るのですか?彼らは同じ名前を持っています! $article->imageと書いても動作しません。私はこの古い質問/答えを知っている

$xml->image[0]; 
$xml->image[1]; 

答えて

0

あなたはこれを行うことができます私は似たような問題を抱えていましたが、2つ目の解決策をajrealで使って解決しました。私は一連のトップレベルノードを持っていました(XMLは適切にフォーマットされておらず、要素を親ノードに分割しませんでした)。だから、forループを使って要素を数え、ajrealの解を使って、$ iの繰り返しで必要な内容をエコーバックしました。

私の使用方法は上記とは少し違っていましたので、画像の関連性を高めるために変更しました。私が間違っていたら誰でも私に知らせてください。

$campaigns = $xml->children(); 

for($i=0;$i<=$campaigns->count();$i++){ 
    echo $campaigns[$i]->article->title . $campaigns[$i]->article->image[0]; 
} 
+0

第2の解決策:はい、私はいつも要素の数を知っている場合にのみ動作します。私はそうではありません。要素の数が不明な場合はどうすればよいですか? – Weblurk

+0

最初のものをループで使用する – ajreal

2

foreach ($xml->xpath("/article/image") as $img) 
{ 
    ... 
} 

か(画像ノードのリストがあるので、アクセス配列の通常の方法で実行可能である) - を:

関連する問題