【问题标题】:How can I format XML?如何格式化 XML?
【发布时间】:2016-01-18 22:37:47
【问题描述】:

我已经研究了如何在 PHP 中 cURL 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>

【问题讨论】:

标签: php html xml


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 2022-01-22
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    相关资源
    最近更新 更多