Start · Sprachen · PHP · Referenz · tidy_is_xml

tidy_is_xml

Funktion

Gibt an, ob das geparste Dokument ein generisches XML-Dokument (kein HTML/XHTML) ist.

seit PHP 5.0.0 Kategorie: string

Signatur

tidy_is_xml(tidy $tidy): bool

Beschreibung

tidy_is_xml() prüft, ob das übergebene tidy-Objekt ein generisches XML-Dokument enthält – also kein HTML oder XHTML, sondern reines XML. Die Funktion ist nützlich, wenn man nach dem Parsen eines unbekannten Dokuments ermitteln möchte, welche Art von Inhalt vorliegt, um die Weiterverarbeitung entsprechend anzupassen.

Intern wertet Tidy den Dokumenttyp aus, den es beim Parsen erkannt hat. Handelt es sich dabei um ein Nicht-HTML/XHTML-Dokument (z. B. ein reines XML-Dokument ohne DOCTYPE oder mit einem XML-spezifischen Namespace), gibt die Funktion true zurück.

Die Funktion kann sowohl als objektorientierte Methode ($tidy->isXml()) als auch als prozedurale Funktion (tidy_is_xml($tidy)) aufgerufen werden. Sie ergänzt ähnliche Hilfsfunktionen wie tidy_is_xhtml(), um eine vollständige Klassifizierung des geparsten Dokuments zu ermöglichen.

Parameter

Name Typ Default Beschreibung
$tidy Pflicht tidy Ein tidy-Objekt, das das zuvor geparste Dokument repräsentiert.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das geparste Dokument ein generisches XML-Dokument ist (kein HTML oder XHTML), andernfalls false.

Beispiele

Grundlegende Verwendung mit einem XML-Dokument

<?php
$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<root>
  <item>Eintrag 1</item>
  <item>Eintrag 2</item>
</root>';

$tidy = new tidy();
$tidy->parseString($xmlString, ['input-xml' => true], 'utf8');
$tidy->cleanRepair();

if (tidy_is_xml($tidy)) {
    echo "Das Dokument ist ein generisches XML-Dokument.";
} else {
    echo "Das Dokument ist kein generisches XML-Dokument.";
}
?>
Das Dokument ist ein generisches XML-Dokument.

Objektorientierte Verwendung und Vergleich mit HTML

<?php
$htmlString = '<!DOCTYPE html>
<html>
  <head><title>Test</title></head>
  <body><p>Hallo Welt</p></body>
</html>';

$xmlString = '<?xml version="1.0"?>
<catalog>
  <book id="1"><title>PHP-Buch</title></book>
</catalog>';

$tidyHtml = new tidy();
$tidyHtml->parseString($htmlString, [], 'utf8');
$tidyHtml->cleanRepair();

$tidyXml = new tidy();
$tidyXml->parseString($xmlString, ['input-xml' => true], 'utf8');
$tidyXml->cleanRepair();

echo "HTML-Dokument ist XML: " . ($tidyHtml->isXml() ? 'ja' : 'nein') . PHP_EOL;
echo "XML-Dokument ist XML: " . ($tidyXml->isXml() ? 'ja' : 'nein') . PHP_EOL;
?>
HTML-Dokument ist XML: nein XML-Dokument ist XML: ja

// Wichtig · Fallstricke

Hinweis zur Konfiguration: Damit Tidy ein XML-Dokument korrekt als solches erkennt, sollte beim Parsen die Option input-xml auf true gesetzt werden. Ohne diese Option könnte Tidy das Dokument als HTML interpretieren und tidy_is_xml() gibt unter Umständen false zurück, obwohl es sich um XML handelt.

Verfügbarkeit: Die Tidy-Erweiterung muss beim Kompilieren von PHP aktiviert worden sein (--with-tidy) oder über eine entsprechende Paketverwaltung installiert sein. Andernfalls stehen weder die Funktion noch die Klasse zur Verfügung.