我尝试从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'];
如果有更好的方法,请建议,谢谢。
有多种方法可以使用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];