$xml = simplexml_load_string($xml_string);
$result = [];
// 遍历 available 部分
if (isset($xml->reply->available)) {
foreach ($xml->reply->available->domain as $domain) {
$result[] = [
'domain' => (string) $domain,
'price' => (float) $domain['price'],
'premium' => (int) $domain['premium'],
'duration' => (int) $domain['duration'],
];
}
}
// 遍历 unavailable 部分
if (isset($xml->reply->unavailable)) {
foreach ($xml->reply->unavailable->domain as $domain) {
$result[] = [
'domain' => (string) $domain,
'available' => false,
];
}
}
// 遍历 invalid 部分
if (isset($xml->reply->invalid)) {
foreach ($xml->reply->invalid->domain as $domain) {
$result[] = [
'domain' => (string) $domain,
'invalid' => true,
];
}
}
print_r($result);
此代码将 XML 字符串解析为一个数组列表,其中每个元素都是一个数组,包含域、价格、是否为高级域、持续时间(如果存在)、是否不可用或是否无效(如果存在)的详细信息。
如果 XML 中没有 available
、unavailable
或 invalid
部分,此代码不会报错,而是生成一个空数组。