我有一堆类似 HTML 的遗留文档。例如,它们看起来像 HTML,但有额外的组成标签,这些标签不是 HTML 的一部分
<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>
我需要解析这些文件。PHP 是唯一可用的工具。这些文档并不接近于格式良好的 XML。
我最初的想法是在 PHP DOMDocument 上使用 loadHTML 方法。但是,这些方法会阻塞 HTML 标签,并且会拒绝解析字符串/文件。
$oDom = new DomDocument();
$oDom->loadHTML("<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>");
//gives us
DOMDocument::loadHTML() [function.loadHTML]: Tag pseud-template invalid in Entity, line: 1 occured in ....
我能想出的唯一解决方案是使用字符串替换函数对文件进行预处理,该函数将删除无效标签并用有效的 HTML 标签替换它们(可能是带有标签名称 id 的跨度)。
有没有更优雅的解决方案?一种让 DOMDocument 知道其他标签被认为是有效的方法吗?PHP 是否有一个不同的、强大的 HTML 解析类/对象?
(如果不是很明显,我不认为正则表达式是一个有效的解决方案)
更新:假标签中的信息是这里目标的一部分,所以像 Tidy 这样的东西不是一个选择。此外,我正在寻找某种程度的(如果不是全部的话)格式良好的清理方法,这就是为什么我首先寻找 DomDocument 的 loadHTML 方法的原因。