Avatar ·

如何在 PHP 中正确解析 HTML 和 XML?解析 DOMDocument、SimpleXML 和正则表达式

大家好!我是一名初学 PHP 的开发者,已经为解析 HTML 页面苦恼了两周。我需要从外部网站提取所有链接和标题,但不知道如何正确操作。 起初我尝试使用正则表达式,但代码变得很糟糕,而且只要 HTML 稍有改动就会出错。以下是我之前写的代码: ```php $html = file_get_contents('https://example.com'); preg_match_all('/(.*?)<\/a>/', $html, $matches); ``` 这仅适用于简单的链接,但如果属性中有引号或换行符,就会出错。更不用说 XML 了——它有 namespace 和复杂的嵌套。 后来我遇到了 `DOMDocument` 和 `SimpleXML`,但我不明白它们的区别以及该选哪个。还听说过 `DOMXPath` 和 `DOMCrawler`,但担心对我的任务来说太复杂了。 请指教: 1. 解析 HTML 和 XML 最好用哪个工具? 2. 如果 HTML 格式不规范,如何正确处理错误?