2011-08-03 7 views
0

属性:どのように名前のXMLノードを解析するために、私はのように見えるXMLファイルを持っている

<sizes> 
<size name="original" width="386" height="429"> 
http://userserve-ak.last.fm/serve/_/62380831/Adele+PNG.png 
</size> 
<size name="large" width="126" height="140">http://userserve-ak.last.fm/serve/126/62380831.png</size> 
<size name="largesquare" width="126" height="126"> 
http://userserve-ak.last.fm/serve/126s/62380831.png 
</size> 
<size name="medium" width="64" height="71">http://userserve-ak.last.fm/serve/64/62380831.png</size> 
<size name="small" width="34" height="38">http://userserve-ak.last.fm/serve/34/62380831.png</size> 
<size name="extralarge" width="252" height="280">http://userserve-ak.last.fm/serve/252/62380831.png</size> 
</sizes> 

は、どのように私はそれが名前"small"とサイズのみのノードを解析するためになるだろうか?

echo $xml->images->image->sizes->size; 

動作しますが、それは最初の画像を撮影し、私は特に小さな画像を探したい:

これまでのところ私は、コードを持っています。

+0

これはどの言語ですか? PHP? –

+0

@John、yes PHP – RSM

答えて

1

小さな画像は常に5番目の画像になりますか?もしそうなら、あなたは

$xml->images->image->sizes->size[4]; 
0

$xml->images->image->sizes->size['name']を使用することができます...それらのいずれかを取得するための良い動作するはずです。どんなにあなたがそれをするにしても、の属性がオブジェクトであり、状況によっては文字列にしたいと思っていることに気を付けたいでしょう。それはあなたがオブジェクトから文字列に変換する必要がありますを意味し、そしてあなたは、このように、(string)でそれを行うことができます:あなたが使用できるように、それら&の全てが文字列にそれらを回す取得

foreach ($xml->size as $size) { 
    $the_size = (string) size['name']; 
    print $the_size . "<br>"; 
} 

文字列関数はstrstr()またはstrcmp()です。