如何从PHP中的SimpleXML对象中获取第n个值?

时间:2012-04-17 00:21:47

标签: php xml simplexml

我有一个SimpleXMLElement,并希望在使用foreach循环循环之前检查特定元素是否具有非空值。这是我的SimpleXMLObject

假设这包含在$ myXMLElement

SimpleXMLElement Object ( [f] => Array ( [0] => Marcus [1] => Smith [2] => Brown University [3] => 1243123200000 [4] => Masters [5] => TestValue [6] => TestValue2 [7] => 4 [8] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 16 ) ) [9] => 0 ) [update_id] => 1325795135203 )

在数组中的值为

[3] => 1243123200000

这是我想检查此参数并确定它不是NULL。如果我想把它作为一个字符串抓住,那将是什么方法。

我希望得到像(字符串)$ myXMLElement [3]这样的东西,但这似乎不是我正在尝试的正确语法。

1 个答案:

答案 0 :(得分:2)

您可以使用数组表示法,但由于该数组是节点f的一部分,您必须像这样访问它:

$val = $xmlObj->f[3];

if (empty($val)) {
    // its empty
}

在一个不相关的说明中,由于该数组中的第8个元素本身就是一个SimpleXML对象,您可以像这样访问它的值:

$val = $xmlObj->f[8]->update_id;

在这些情况下,它只是对象访问和数组访问符号的混合。

要从第8个元素获取属性,还可以使用数组表示法:

$id = $xmlObj->f[8]['id']; // get "id" attribute

Basic SimpleXML Usage上的页面有一些非常有用的示例,展示了如何从SimpleXML对象访问不同的元素。示例#5显示了如何access attributes