我使用SimpleXML来获取由标签名称和属性指定的XML对象的元素......如下所示:
$result = $xml->xpath('Stat[@Type="Venue"]');
$venue = $result[0];
这很好用。
然而...... 以下缩短给我一个错误
$venue = $xml->xpath('Stat[@Type="Venue"]')[0];
PHP Parse error: syntax error, unexpected '[' in /var/www/handler.php on line 10
我必须变得愚蠢....但我似乎无法弄清楚这一点。
答案 0 :(得分:2)
你不能使用这样的数组。你需要将它传递给一个像这样的变量
$venue = $xml->xpath('Stat[@Type="Venue"]');
echo $venue[0];
我认为在PHP 5.4中你可以从对象访问数组,但不要引用我。
编辑:对不起,我复制并粘贴了OP中的代码。 [0]
从我的雷达中溜走了!
答案 1 :(得分:0)
好吧,除了how Eli suggested之外,还有几种方法可以做到这一点。第一个也是最容易实现的是使用current()。我在类似的帖子here中找到了这个帖子,所以我不能相信这个帖子:)
$vanue = current(($xml->xpath('Stat[@Type="Venue"]')));
第二种解决方案是使用XPATH查询。在xpath上使用查询的唯一原因是您需要评估表达式。我能找到的一切都说这对你也有用,但正如我所说,没有必要,甚至可能不适用于你的PHP版本。我知道它与我没有关系,所以很明显我无法测试它。
$doc = new DOMDocument;
$doc->Load($file);
$xpath = new DOMXPath($doc);
$query = 'Stat[@Type="Venue"]';
$venue = $xpath->query($query)->item(0);
答案 2 :(得分:0)
添加了函数数组解除引用,例如FOO()[0]。
使用PHP 5.4.0或更高版本。