如何用PHP统计文件夹中多个XML文件的元素数量?
批量统计uploads文件夹XML文件元素数并表格输出
以下是修改后的PHP脚本,可遍历uploads目录下所有XML文件,统计每个文件的元素数量(注:此处统计逻辑与原脚本一致,为根节点的直接子元素数量;若需统计所有层级元素,可自行扩展递归遍历逻辑),并以HTML表格形式输出:
<?php // 指定uploads目录路径 $dir = 'uploads/'; // 获取目录下所有XML格式文件 $xmlFiles = glob($dir . '*.xml'); // 输出HTML表格头部 echo '<table border="1" cellpadding="8" cellspacing="0">'; echo '<tr><th>文件名</th><th>元素数量</th></tr>'; foreach ($xmlFiles as $file) { // 加载XML文件 $xml = simplexml_load_file($file); if ($xml) { // 统计根节点直接子元素数量 $elementCount = $xml->count(); // 提取纯文件名(去除路径前缀) $pureFileName = basename($file); // 输出表格行数据 echo "<tr><td>$pureFileName</td><td>$elementCount</td></tr>"; } else { // 处理文件加载失败的情况 $pureFileName = basename($file); echo "<tr><td>$pureFileName</td><td>文件加载失败</td></tr>"; } } // 闭合表格标签 echo '</table>'; ?>
关键修改说明:
- 用
glob('uploads/*.xml')批量获取目标目录下所有XML文件,替代原脚本的单个文件指定 - 增加XML文件加载失败的容错处理,避免脚本因单个文件异常而中断
- 通过
basename()提取纯文件名,让表格输出更简洁直观 - 用HTML表格格式化结果,提升可读性
示例输出效果:
| 文件名 | 元素数量 |
|---|---|
| test.xml | 15 |
| user_data.xml | 22 |
| invalid.xml | 文件加载失败 |
内容的提问来源于stack exchange,提问作者GurusGuru
相关产品推荐
相关产品推荐

