xpathで属性の値を指定する方法
PHPでやってたので
<?php
$hoge = simplexml_load_file("dash.xml") ;
print_r($hoge->xpath("/test/value[@name=\"odoru\"]")) ;
?>
dash.xml
<?xml version="1.0" encoding="UTF-8"?>
<test>
<value name="aibou">相棒 Season8</value>
<value name="odoru">踊る大捜査線 THE movie 3〜奴らを解放せよ〜</value>
<value name="lair">ライアーゲーム</value>
</test>
結果
Array (
[0] => SimpleXMLElement Object (
[@attributes] => Array (
[odoru] => odoru
)
[0] =>
踊る大捜査線 THE movie 3〜奴らを解放せよ〜
)
)
ポイントは
value[@name=\"odoru\"]
です、意味は「valueという要素であり、nameという属性の値が「odoru」に合致する」。
[@属性=値]は覚えておいて損はないね。
これを知らなかったらこういう風にやってるかもw
<?php
$hoge = simplexml_load_file("dash.xml") ;
foreach($hoge as $dat){
if($dat["name"] == "odoru"){
print_r($dat) ;
break ;
}
}
?>
でも同じようなことはできるけど
- 重い
- 時間がかかる
という短所があります、とりあえずこれくらいかなw
追記:取得したデータはUTF-8のため文字化けする可能性あります