我没有从php中的xml响应中获取属性名?

我没有从php中的xml响应中获取属性名?,php,xml,Php,Xml,我从API得到XML响应,但我面临一个小问题。我无法从XML响应中获取属性名称 我正在共享图像XML响应数据。 这是我的代码,我正试图获得名称属性,但我无法获得,所以请帮助我 $xml = new SimpleXMLElement($response); echo "<pre>"; print_r($xml);die(); 如果你仔细阅读SimpleXML,你会发现打印并不能提供所有的数据。如果需要字段元素的name属性,那么可以执行以下操作 $objectRec = $

我从API得到XML响应,但我面临一个小问题。我无法从XML响应中获取属性名称

我正在共享图像XML响应数据。

这是我的代码,我正试图获得名称属性,但我无法获得,所以请帮助我

$xml = new SimpleXMLElement($response);
    echo "<pre>"; print_r($xml);die();

如果你仔细阅读SimpleXML,你会发现打印并不能提供所有的数据。如果需要字段元素的name属性,那么可以执行以下操作

$objectRec = $xml->xpath('//object[@pk="2"]')[0];
foreach ( $objectRec->field as $field )   {
    echo $field['name'].PHP_EOL;
}
foreach将获取加载的XML,然后选择第一个object元素,[0]将选择第一个并在每个field元素中选择。回显行使用数组表示法获取name属性

如果您想要一个特定的对象元素,那么您可以使用XPath来查找这个对象,并执行与上面类似的操作,然后将每个元素打印出来

$objectRec = $xml->xpath('//object[@pk="1"]')[0];
echo $objectRec->asXML();
上面的XPath选择元素。注意->xpath返回一个匹配节点的数组,所以这里我只使用第一个节点[0]

为了帮助检查您选择的元素,并且当print\r没有多大帮助时,您可以使用asXML输出节点的XML


@尼格伦非常感谢你的帮助。
$objectRec = $xml->xpath('//object[@pk="2"]')[0];
foreach ( $objectRec->field as $field )   {
    echo $field['name'].PHP_EOL;
}
$objectRec = $xml->xpath('//object[@pk="1"]')[0];
echo $objectRec->asXML();