Tags: PHP

Jak analizować i przetwarzać HTML/XML w PHP?

Aby analizować i przetwarzać HTML/XML w PHP, można wykorzystać bibliotekę DOM (Document Object Model) lub bibliotekę SimpleXML, w zależności od preferencji i konkretnych wymagań projektu. Oto przykładowe instrukcje dotyczące obu tych metod:

Analiza i przetwarzanie za pomocą DOM (Document Object Model)

1. **Analiza dokumentu HTML/XML**:
Możesz załadować dokument HTML/XML i utworzyć drzewo obiektów DOM za pomocą klasy `DOMDocument`:

$doc = new DOMDocument();
$doc->loadHTML($html); // Wczytaj HTML/XML

2. **Nawigacja po drzewie DOM**:
Możesz poruszać się po drzewie obiektów DOM, wybierając elementy, atrybuty i zawartości:

$element = $doc->getElementsByTagName('tag_name')->item(0); // Pobierz pierwszy element o określonej nazwie
$text = $element->nodeValue; // Pobierz zawartość elementu
$attribute = $element->getAttribute('attribute_name'); // Pobierz atrybut elementu

3. **Modyfikacja i tworzenie nowego HTML/XML**:
Możesz modyfikować lub tworzyć nowe elementy i wstawiać je do drzewa DOM:

$newElement = $doc->createElement('new_element');
$newText = $doc->createTextNode('Nowa zawartość');
$newElement->appendChild($newText);
$doc->getElementsByTagName('tag_name')->item(0)->appendChild($newElement);

4. **Serializacja do HTML/XML**:
Możesz przekształcić drzewo DOM z powrotem na kod HTML/XML:

$htmlString = $doc->saveHTML();

Analiza i przetwarzanie za pomocą SimpleXML

1. **Analiza dokumentu HTML/XML**:
Możesz zaimportować dokument XML za pomocą klasy `SimpleXMLElement`:

$xml = simplexml_load_string($xmlString); // Załaduj XML

2. **Nawigacja po dokumente**:
Przeszukuj dokument XML, korzystając z prostych składni:

$element = $xml->tag_name; // Pobierz element o określonej nazwie
$text = (string)$element; // Pobierz zawartość elementu jako ciąg znaków
$attribute = $element['attribute_name']; // Pobierz atrybut elementu

3. **Modyfikacja i tworzenie nowego XML**:
Możesz modyfikować lub tworzyć nowe elementy XML:

$newElement = $xml->addChild('new_element', 'Nowa zawartość');

4. **Serializacja do XML**:
Możesz przekształcić obiekt SimpleXML z powrotem na kod XML:

$xmlString = $xml->asXML();

Podsumowując, zarówno DOM, jak i SimpleXML są potężnymi narzędziami do analizy i przetwarzania HTML/XML w PHP. Wybór między nimi zależy od Twoich preferencji i konkretnych potrzeb projektu. DOM oferuje bardziej rozbudowane i zaawansowane możliwości, podczas gdy SimpleXML jest bardziej przejrzyste i prostsze w użyciu.