使用SimpleXml访问PHP的第n个XML元素

时间:2013-07-17 00:45:18

标签: php xml simplexml

我的xml格式如下:

<?xml version="1.0"?>
<root>
  <foo id="1">
    <bar>text</bar>
  </foo>
  <foo id="2">
    <bar>text2</bar>
  </foo>
</root>

我知道,在PHP中,我可以访问加载了SimpleXML的xml文件的第n个元素,如下所示:

$xml = simplexml_load_file('file.xml');
echo $xml->foo[2]->bar;

但是我需要通过从$_GET拉出的变量来访问元素,所以:

echo $xml->foo[$var]->bar;

这似乎不起作用,我真的很感激任何建议。谢谢!

1 个答案:

答案 0 :(得分:1)

似乎SimpleXML以与普通PHP数组略有不同的方式区分数字和非数字数组偏移,因此您需要先将变量转换为整数。 (除非您告诉PHP,否则查询字符串中的所有输入都是字符串。)

$var = intval($_GET['var']);
echo $xml->foo[$var]->bar;

这会将字符串'1'转换为整数1,并且应该提供您需要的结果。