php: 使用 SimpleXML 解析表结构

标签 php simplexml html-table

我正在尝试读取一个 xml 文件,该文件出于某种原因已在表结构中建模,如下所示:

<tr id="1">
  <td name="Date">10/01/2009</td>
  <td name="PromoName">Sample Promo Name</td>
  <td name="PromoCode">Sample Promo Code</td>
  <td name="PromoLevel" />
</tr>

这只是一个示例行,该文件有多个 <tr> block ,它全部被 <table> 包围.

我如何读入值,所有行都被命名为 <td> name

最佳答案

您可以将 simpleXML 与 XPath 表达式结合使用。

$xml = simplexml_load_file('myFile.xml');
$values = $xml->xpath('//td[@name]');
foreach($values as $v) {
    echo "Found $v<br />";
}

这将为您提供所有具有名称属性的 TD 节点值,例如

Found 10/01/2009
Found Sample Promo Name
Found Sample Promo Code
Found <nothing cuz PromoLevel is empty>

编辑 要遍历所有表格行,您可以这样做:

$rows = $xml->xpath('//tr');
foreach($rows as $row) {
   echo $row['id'];
   foreach($row->td as $td) {
      if($td['name']) {
          echo $td['name'],':',$td,'<br/>',PHP_EOL;
      }
   }
}

您可能还想看看 this article .

编辑按照 Josh 的建议修复了 XPath 表达式。

关于php: 使用 SimpleXML 解析表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730428/

相关文章:

javascript - AngularJS:当 php 返回 JSON 字符串时,为什么 $http response.data 是一个对象?

php - 将推文存储到数据库中的简单方法是什么?

php - 将 SimpleXML 导入 PHP。我需要关闭文件吗?

css - 在 <td> 中居中 <img>

php - 使用服务帐户,getAccessToken() 返回 null

php - MySQL Min value query group by second column not getting the proper value of third column

php - 将左连接限制为添加表中的一条记录

php - DOMDocument::loadXML(): StartTag: 实体中的元素名称无效

html - 使用 CSS 的水平表格布局

html - 如何像 td 一样在 span 或 div 的中心(垂直)对齐文本?