使用PHP从名称中获取XML文件的值

时间:2017-11-15 14:03:23

标签: php xml

在这种情况下,如何使用我的意思<set name = "height">的值来获取"height"标记中存储的名称和值?它的当前XML文件,我正在使用PHP。

<list>
<npc id="25001" name="Greyclaw Kutus" title="Raid Boss">
<set name="level" val="23"/>
<set name="radius" val="21"/>
<set name="height" val="43.5"/>
<set name="rHand" val="67"/>
<set name="lHand" val="633"/>
<set name="sp" val="67170"/>
<set name="hp" val="40330.25972324"/>
<set name="mp" val="231.96"/>
<set name="hpRegen" val="17.5347470979605"/>
</npc>
</list>

我做了这样的事情我不知道如何通过这个来整理整个文件:

<?php
$list = simplexml_load_file('25000-25999.xml');

if($list === false){
echo "File open error";
}
else {

foreach($list ->npc as $npc) {
 $att = "height";

 $val = $list->npc->xpath('set[@name="' . $att . '"]');

 foreach ($val as $value) {
     echo $value['val'];
 }
 }

1 个答案:

答案 0 :(得分:0)

当您访问&#39;身高时?您正在使用$list->npc作为XPath表达式的基础进行访问。这将每次给你第一个元素(并始终回显43.5)。您需要将其更改为使用$npc,以便每次XPath相对于npc的当前元素时...

   $val = $npc->xpath('set[@name="' . $att . '"]');