我已经研究了如何在PHP中使用JSS Casper API,并以XML格式接收响应。在浏览器中,它只是在一行上没有任何空格的情况下格式化所有内容。以下是XML的示例:
<accounts>
<users>
<user>
<id>1</id>
<name>administrator</name>
</user>
</users>
<groups>
<group>
<id>2</id>
<name>Example Group</name>
<site>
<id>-1</id>
<name>None</name>
</site>
</group>
</groups>
</accounts>
如何将其格式化为HTML表格或更漂亮的东西?有一种简单的转换方法吗?
这是我尝试过的代码:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://example.jamfcloud.com/JSSResource/accounts");
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "user:pass");
$result = curl_exec($curl);
curl_close($curl);
$arr = simplexml_load_string_($curl);
$xml = $arr->member;
?>
<table>
<tr>
<th>User</th>
<th>ID</th>
<th>Name</th>
</tr>
<?php foreach($xml as $row) { ?>
<tr>
<td><?php echo $row->user ?></td>
<td><?php echo $row->id ?></td>
<td><?php echo $row->name ?></td>
</tr>
<?php } ?>
</table>
答案 0 :(得分:1)
您正在呼叫simplexml_load_string错误:
$arr = simplexml_load_string_($curl);
实际应该是:
$arr = simplexml_load_string($result);
删除
$xml = $arr->member;
因为您只需将foreach
循环替换为:
<?php foreach($arr->users->user as $row) { ?>
请参阅this answer。