2016-01-18 63 views
0

我已经弄清楚如何在PHP中使用JSS Casper API,并在XML中接收响应。在浏览器中,它只是格式化一行而没有任何空格。这里是一个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

这里是[例子](https://gist.github.com/betweenbrain/5405671)你可以试试。 – usandfriends

回答

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