发布于2025-08-20 阅读(0)
扫一扫,手机访问

本文档旨在指导开发者如何使用 PHP 的 DOMDocument 和 DOMXPath 类,将包含状态信息的 HTML 无序列表结构转换为结构化的多维数组。通过使用 XPath 查询和数据提取,可以将网页中类似物流跟踪信息的列表转换为易于处理的 JSON 格式数据,方便后续的数据分析和应用。
首先,确保你的 PHP 环境已经安装并启用了 DOMDocument 和 DOMXPath 扩展。这两个扩展通常是 PHP 默认安装的一部分,但如果遇到问题,可能需要手动启用。
以下代码演示了如何将 HTML 字符串转换为多维数组,并最终输出为 JSON 格式。
preserveWhiteSpace = false;
@$domd->loadHTML('' . $html, $flags);
$removeAnnoyingWhitespaceTextNodes = function (\DOMNode $node) use (&$removeAnnoyingWhitespaceTextNodes): void {
if ($node->hasChildNodes()) {
for ($i = $node->childNodes->length - 1; $i >= 0; --$i) {
$removeAnnoyingWhitespaceTextNodes($node->childNodes->item($i));
}
}
if ($node->nodeType === XML_TEXT_NODE && !$node->hasChildNodes() && !$node->hasAttributes() && ! strlen(trim($node->textContent))) {
$node->parentNode->removeChild($node);
}
};
$removeAnnoyingWhitespaceTextNodes($domd);
return $domd;
}
$html = <<
代码解释:
输出结果:
[
{
"Status": "Objeto em trânsito - por favor aguarde",
"Data": "24/10/2021 | Hora: 12:04",
"Origem": "Unidade de Tratamento - Jaboatao Dos Guararapes / PE",
"Destino": "Agência dos Correios - Cuitegi / PB"
},
{
"Status": "Objeto em trânsito - por favor aguarde",
"Data": "19/10/2021 | Hora: 00:03",
"Origem": "Unidade de Logística Integrada - Curitiba / PR",
"Destino": "Unidade de Tratamento - Recife / PE"
},
{
"Status": "Fiscalização aduaneira finalizada",
"Data": "18/10/2021 | Hora: 23:35",
"Local": "Unidade Operacional - Curitiba / PR"
},
{
"Status": "Objeto recebido pelos Correios do Brasil",
"Data": "16/10/2021 | Hora: 11:45",
"Local": "Unidade de Logística Integrada - Curitiba / PR"
},
{
"Status": "Objeto postado",
"Data": "14/10/2021 | Hora: 20:30",
"Local": "País - /"
}
]本文档提供了一个使用 PHP 的 DOMDocument 和 DOMXPath 类将 HTML 无序列表转换为多维数组的示例。通过使用 XPath 查询和数据提取,可以将网页中的结构化数据转换为易于处理的格式。在实际应用中,需要根据具体的 HTML 结构和需求进行适当的调整和优化。
下一篇:Excel双轴图制作教程详解
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8