获取未知名称的SimpleXML节点值

时间:2012-08-28 13:07:03

标签: php simplexml

我正在使用基于云的联系人管理系统API和PHP库,当我在搜索联系人时使用print_r($ xml)(在View Source中)时返回以下代码:

SimpleXMLElement Object
(
[id12345] => SimpleXMLElement Object
    (
        [id] => 12345
        [name] => Bob Smith
        [parentid] => 51214064
        [parentcn] => EGCTeam
        [flagged] => SimpleXMLElement Object
            (
            )

        [created] => 2012-08-24T18:39:22+00:00
        [viewed] => 2012-08-28T10:39:49+00:00
        [updated] => 2012-08-28T10:41:05+00:00
    )

[count] => 1
[status] => success
)

通常我会使用此代码来访问" name"字段:

$contactName = $xml->id12345->name

但由于第一个节点包含我不知道的ID,我该如何访问联系人的值?我试过这个:

$contactName = $xml->children()->name

但它没有工作(空白)。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用SimpleXMLElement::getName function获取SimpleXML元素的名称,并通过获取id之后的字符串来解析名称中的id。

例如(如果$ response是SimpleXML元素):

foreach ($response->children() as $child)
{
    $name = $child->getName();
    $id = substr($name, 2);
    // Do stuff here with id or access node by $name //
}