将服务器请求的XML格式数据转换成数组并发回前端

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

我是使用 JS/PHP 制作基于许可证服务器请求的网页的初学者。现在,我正在请求服务器的客户信息并将其放入数组中并发回前端。我请求许可证 ID,如果有效,则数据库会发回客户信息和许可证 ID 的数量。这意味着一个客户 ID 可以拥有多个许可证。服务器发送 XML 格式的数据,我试图将其放入数组中并发回前端。许可证 ID 本身不是“敏感”数据,因此暴露给前端是可以的。

XML 格式的数据看起来像这样...

<CustomerData>
<Customer>
<FirstName>TEST FIRST</FirstName>
<LastName>TEST LAST</LastName>
</Customer>
<License>
<LicenseID>11223344</LicenseID>
<ProductID>5448</ProductID>
</License>
<License>
<LicenseID>11223345</LicenseID>
<ProductID>4444</ProductID>
</License>

我尝试在 PHP 中使用 foreach 将其放入数组中,但它总是返回空的许可证数组。 我尝试用这段代码解决...

$xml = simplexml_load_string($result);
if (!empty($xml->CustomerData) && !empty($xml->CustomerData->License)) {
  foreach ($xml->CustomerData->License as $license) {
    $licenseID = (string) $license->LicenseID;
    $productID = (string) $license->ProductID;
    $licenses[] = [
      'licenseID' => $licenseID,
      'productID ' => $productID 
    ];
  }
} else {
error_log('Error');
}
echo json_encode(['licenses' => $licenses]);
 
javascript php arrays foreach
1个回答
0
投票

尝试一下:

$xml = simplexml_load_string($result);

if (!$xml->License->count()) {
   error_log('Error');
}
else {
   echo(json_encode(['licenses' => iterator_to_array($xml->License, false)]));
}
© www.soinside.com 2019 - 2024. All rights reserved.