1

我有一个 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。如果我想将它作为字符串抓取,那么这样做的方法是什么。

我希望有类似 (string)$myXMLElement[3] 的东西,但这似乎不是我正在尝试的正确语法。

4

1 回答 1

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 对象访问不同的元素。Example #5 展示了如何访问属性

于 2012-04-17T00:39:08.293 回答