从Plesk解析XML API数据

问题描述 投票:0回答:1

我尝试从Plesk API结果XML数据获取域名,如下所示:

<packet version="1.6.7.0">
<site-alias>
<get>
<result>
<status>ok</status>
<info>
<name>example.com</name>         
</info>
</result>
<result>
<status>ok</status>
<info>
<name>domain.net</name>         
</info>
</result>
</get>
</site-alias>
</packet>

运用

$xml= simplexml_load_string($response);
echo $xml['site-alias']['get']['result'][0]['name'];

如果有更好的方法,请建议,谢谢。

php xml api plesk
1个回答
0
投票

有多种方法可以使用SimpleXMLElement获取值。

要获得只有1个值,您可以这样做:

// Get 1 using SimpleXMLElement
echo $xml->{"site-alias"}->get->result->info->name;

// Get 1 using xpath
echo $xml->xpath('/packet/site-alias/get/result[1]/info/name')[0];

要获得多个值,您可以这样做:

// Get multiple using SimpleXMLElement
$items = $xml->{"site-alias"}->get->result;
foreach ($items as $item) {
    echo $item->info->name . "<br>";
}

// Get multiple using xpath
$items = $xml->xpath('/packet/site-alias/get/result/info/name');
foreach ($items as $item) {
    echo $item . "<br>";
}

SimpleXMLElement有一个方法__toString所以你可以回应字符串内容。 xpath方法返回一个数组,因此您可以使用索引0获取第一个值。

获得价值的简短方法可能是:

echo $xml->xpath('//name')[0];

Demo

© www.soinside.com 2019 - 2024. All rights reserved.