¿Cómo parsear correctamente HTML y XML en PHP? Analizamos DOMDocument, SimpleXML y expresiones regulares
¡Hola a todos! Soy un desarrollador PHP principiante y ya llevo dos semanas sufriendo con el parseo de páginas HTML. Necesito extraer todos los enlaces y títulos de un sitio externo, pero no logro entender cómo hacerlo correctamente.
Primero intenté usar expresiones regulares, pero el código queda horrible y se rompe ante el mínimo cambio en el HTML. Esto es lo que tenía:
```php
$html = file_get_contents('https://example.com');
preg_match_all('/(.*?)<\/a>/', $html, $matches);
```
Esto solo funciona para enlaces simples, pero si hay comillas en los atributos o saltos de línea, todo se rompe. Y ni hablar de XML, que tiene sus propios namespaces y anidamiento complejo.
Luego me topé con `DOMDocument` y `SimpleXML`, pero no entiendo la diferencia y qué elegir. También he oído sobre `DOMXPath` y `DOMCrawler`, pero temo que sea demasiado complicado para mi tarea.
Por favor, aconsejenme:
1. ¿Qué herramienta es mejor usar para parsear HTML y XML?
2. ¿Cómo manejar correctamente los errores si el HTML está malformado?
3.