1

こんにちは私は取得しようとしています node that contains the text 116.. but what I am trying is not working. Any help would be greatly appreciated!!

XML (codes.xml):

<codes>
<condition>
<code>116</code>
<description>Moderate or heavy snow in area with thunder</description>
<day_icon>wsymbol_0012_heavy_snow_showers</day_icon>
<night_icon>wsymbol_0028_heavy_snow_showers_night</night_icon>
</condition>
<condition>
<code>392</code>
<description>Patchy light snow in area with thunder</description>
<day_icon>wsymbol_0016_thundery_showers</day_icon>
<night_icon>wsymbol_0032_thundery_showers_night</night_icon>
</condition>
</codes>

My PHP CODE TO CALL:

$codes = simplexml_load_file('xml/codes.xml');

foreach($codes->codes->condition AS $match){
    if($match->code == "116")
    {echo $match->description;}
    };
4

2 に答える 2

1

$codesはルートノードであり、そうではありません$codes->codes

foreach($codes->condition AS $match)
{
    if($match->code == "116")
    {
        echo $match->description;
    }
};
于 2012-04-30T16:13:30.417 に答える
0

ほとんどの場合、xpathを使用してこれを行うことができます。複雑な検索を読み、処理する方が簡単です。

$codes = simplexml_load_file('xml/codes.xml');
$nodes = $codes->xpath("/codes/condition[code=116]");
foreach ($nodes as $N)
  echo $N->description;

xpath構文の詳細については、http://www.w3schools.com/xpath/xpath_syntax.aspを参照してください。

于 2012-04-30T16:36:46.747 に答える