我有一个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]这样的东西,但这似乎不是我正在尝试的正确语法。
答案 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。