Php 从XML响应访问数组部分时出现问题

Php 从XML响应访问数组部分时出现问题,php,arrays,xml,Php,Arrays,Xml,我正在发送一个XML URL以返回一些数据,这些数据已成功显示为一个多数组。我发现很难分离一些特定的数据,希望有人能教我如何通过一个例子将这些数据正确地添加到变量中 下面是使用print_r()的完整数组 我通常可以很好地管理阵列,尽管这里的“@attributes”让我很困惑。。。这是到目前为止我的脚本(请记住,我只是在这里测试) 然而,我似乎不能比现在走得更远了?我将如何使用这些数据来获得类似于以下内容的内容 $domain_req = $xml[Domain]; $domain_avail

我正在发送一个XML URL以返回一些数据,这些数据已成功显示为一个多数组。我发现很难分离一些特定的数据,希望有人能教我如何通过一个例子将这些数据正确地添加到变量中

下面是使用
print_r()的完整数组

我通常可以很好地管理阵列,尽管这里的“@attributes”让我很困惑。。。这是到目前为止我的脚本(请记住,我只是在这里测试)

然而,我似乎不能比现在走得更远了?我将如何使用这些数据来获得类似于以下内容的内容

$domain_req = $xml[Domain];
$domain_avail = $xml[Available];
等等

根据要求,以下是原始XML-

<ApiResponse xmlns="http://api.namecheap.com/xml.response" Status="OK">
<Errors/>
<Warnings/>
<RequestedCommand>namecheap.domains.check</RequestedCommand>
<CommandResponse Type="namecheap.domains.check">
<DomainCheckResult Domain="test.com" Available="false" ErrorNo="0" Description="" IsPremiumName="false" PremiumRegistrationPrice="0" PremiumRenewalPrice="0" PremiumRestorePrice="0" PremiumTransferPrice="0" IcannFee="0" EapFee="0"/>
</CommandResponse>
<Server>PHX01APIEXT03</Server>
<GMTTimeDifference>--4:00</GMTTimeDifference>
<ExecutionTime>0.018</ExecutionTime>
</ApiResponse>

namescape.domains.check
PHX01APIEXT03
--4:00
0.018

要访问这些,您应该使用

$status = current($xml->attributes());
$results = $xml->CommandResponse->DomainCheckResult->attributes();
echo $status['Status'];

$domain_req = $results['Domain'];
$domain_avail = $results['Available'];

你必须在名字周围加引号。

当我试图重复这些时,我什么也得不到?我不确定我的
$results
变量设置是否正确?我已经更新了答案,答案是$results,它的层次略有不同。(我也没有看到结果中的s)。你能显示原始XML而不是输出吗?或者
print\r
@NigelRen我已经更新了我的问题
$domain_req = $xml[Domain];
$domain_avail = $xml[Available];
<ApiResponse xmlns="http://api.namecheap.com/xml.response" Status="OK">
<Errors/>
<Warnings/>
<RequestedCommand>namecheap.domains.check</RequestedCommand>
<CommandResponse Type="namecheap.domains.check">
<DomainCheckResult Domain="test.com" Available="false" ErrorNo="0" Description="" IsPremiumName="false" PremiumRegistrationPrice="0" PremiumRenewalPrice="0" PremiumRestorePrice="0" PremiumTransferPrice="0" IcannFee="0" EapFee="0"/>
</CommandResponse>
<Server>PHX01APIEXT03</Server>
<GMTTimeDifference>--4:00</GMTTimeDifference>
<ExecutionTime>0.018</ExecutionTime>
</ApiResponse>
$status = current($xml->attributes());
$results = $xml->CommandResponse->DomainCheckResult->attributes();
echo $status['Status'];

$domain_req = $results['Domain'];
$domain_avail = $results['Available'];