Wie man HTML und XML in PHP richtig parst? Wir analysieren DOMDocument, SimpleXML und reguläre Ausdrücke
Hallo zusammen! Ich bin ein PHP-Anfänger und quäle mich seit zwei Wochen mit dem Parsen von HTML-Seiten. Ich muss alle Links und Überschriften von einer externen Website extrahieren, aber ich verstehe nicht, wie ich das richtig machen soll.
Zuerst habe ich versucht, reguläre Ausdrücke zu verwenden, aber der Code wird schrecklich und bricht bei der kleinsten Änderung im HTML. Hier ist, was ich hatte:
```php
$html = file_get_contents('https://example.com');
preg_match_all('/(.*?)<\/a>/', $html, $matches);
```
Das funktioniert nur für einfache Links, aber wenn es Anführungszeichen in den Attributen oder Zeilenumbrüche gibt, bricht alles zusammen. Und von XML will ich gar nicht reden – dort gibt es eigene Namespaces und komplexe Verschachtelungen.
Dann bin ich auf `DOMDocument` und `SimpleXML` gestoßen, aber ich verstehe den Unterschied nicht und weiß nicht, was ich wählen soll. Ich habe auch von `DOMXPath` und `DOMCrawler` gehört, aber ich befürchte, dass das für meine Aufgabe zu komplex ist.
Bitte gebt mir Ratschläge:
1. Welches Tool eignet sich am besten zum Parsen von HTML und XML?
2. Wie behandelt man Fehler richtig, wenn das HTML fehlerhaft ist?
3.