CLXXVIII. XMLReader-Funktionen

Einführung

Die XMLReader-Erweiterung ist ein fortschreitender XML-Parser. Der Reader agiert wie ein Zeiger, der einen Datenstrom durchläuft und jeden vorbeikommenden Knoten der Reihe nach verarbeitet.

Installation

Die XMLReader-Erweiterung steht für PHP 5.0 unter PECL zur Verfügung. Ab PHP 5.1 ist sie standardmäßig enthalten und aktiviert. Sie wird durch die Option --enable-xmlreader (oder --with-xmlreader vor PHP 5.1) aktiviert. Die libxml Erweiterung wird vorausgesetzt.

Vordefinierte Klassen

XMLReader

Methoden

Eigenschaften

Tabelle 1.

NameTypnur lesenBeschreibung
attributeCountintjaAnzahl Attribute eines Knotens
baseURIstringjaBasis URI des Knotens
depthintjaKnotentiefe im Strukturbaum beginnend bei 0
hasAttributesbooljaZeigt an, ob ein Knoten Attribute besitzt
hasValuebooljaZeigt an, ob ein Knoten einen Textwert besitzt
isDefaultbooljaZeigt an, ob ein Knoten durch DTD disqualifiziert wurde
isEmptyElementbooljaZeigt an, ob ein Knoten ein Leerelement ist
localNamestringjaLokaler Knotenname
namestringjaQualifizierter Knotenname
namespaceURIstringjaURI des Namensraum dem der Knoten zugehört
nodeTypeintjaKnotentyp
prefixstringjaPräfix des Namensraum dem der Knoten zugehört
valuestringjaTextwert des Knotens
xmlLangstringjaDer xml:lang Bereich dem der Knoten angehört

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Warnung

Seit PHP 5.1 verwendet der XMLReader Klassenkonstanten. Frühere Versionen verwenden globale Konstanten in Form von XMLREADER_ELEMENT.

Tabelle 2. XMLReader Knotentypen

KonstanteWerteBeschreibung
XMLReader::NONE (integer) 0Kein Knotentype
XMLReader::ELEMENT (integer) 1Element
XMLReader::ATTRIBUTE (integer) 2Attribut
XMLReader::TEXT (integer) 3Text
XMLReader::CDATA (integer) 4CDATA Knoten
XMLReader::ENTITY_REF (integer) 5Entitäten-Referenz
XMLReader::ENTITY (integer) 6Entität-Deklarationsknoten
XMLReader::PI (integer) 7Verarbeitungsvorschrift
XMLReader::COMMENT (integer) 8Kommentarknoten
XMLReader::DOC (integer) 9Dokumentknoten
XMLReader::DOC_TYPE (integer) 10Dokumententypknoten
XMLReader::DOC_FRAGMENT (integer) 11Dokumentteilknoten
XMLReader::NOTATION (integer) 12Notationsknoten
XMLReader::WHITESPACE (integer) 13Leerzeichenknoten
XMLReader::SIGNIFICANT_WHITESPACE (integer) 14Bedeutende Leerzeichenknoten
XMLReader::END_ELEMENT (integer) 15Schlußelement
XMLReader::END_ENTITY (integer) 16Schlußentität
XMLReader::XML_DECLARATION (integer) 17XML-Beschreibungsknoten

Tabelle 3. Parseroptionen

KonstanteWertBeschreibung
XMLReader::LOADDTD (integer) 1DTD laden, aber nicht validieren
XMLReader::DEFAULTATTRS (integer) 2DTD und Standardattribute laden, aber nicht validieren
XMLReader::VALIDATE (integer) 3DTD laden und während dem Parsen validieren
XMLReader::SUBST_ENTITIES (integer) 4Entitäten ersetzen und Referenzen erweitern
Inhaltsverzeichnis
XMLReader->close() -- XMLReader-Eingabe beenden
XMLReader->expand() -- Gibt eine Kopie des aktullen Knotens als DOM-Objekt zurück
XMLReader->getAttribute() -- Gibt den Wert eines Attributes nach Namen zurück
XMLReader->getAttributeNo() -- Gibt den Wert eines Attributes nach Position zurück
XMLReader->getAttributeNS() -- Gibt den Wert eines Attributes nach lokalem Namen und URI zurück
XMLReader->getParserProperty() --  Zeigt an, ob die angegebene Eigenschaft gesetzt wurde
XMLReader->isValid() -- Zeigt an, ob das geparste Dokument valide ist
XMLReader->lookupNamespace() -- Prüfen, ob ein Namensbereich für einen Präfix vorhanden ist
XMLReader->moveToAttribute() -- Zeiger auf benanntes Attribut setzen
XMLReader->moveToAttributeNo() -- Zeiger auf Attribut nach Position setzen
XMLReader->moveToAttributeNs() -- Zeiger auf benanntes Attribut im Namensraum setzen
XMLReader->moveToElement() -- Zeiger positionieren auf das Elternelement des aktuellen Attributes
XMLReader->moveToFirstAttribute() -- Zeiger auf erstes Attribut setzen
XMLReader->moveToNextAttribute() -- Zeiger auf nächstes Attribut setzen
XMLReader->next() -- Zeiger auf nächstes Element setzen und Kinder überspringen
XMLReader->open() -- URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
XMLReader->read() -- Zeiger auf das nächste Element setzen
XMLReader->setParserProperty() -- Parser-Optionen setzen
XMLReader->setRelaxNGSchema() -- Dateiname oder URI des RelaxNG-Schema setzen
XMLReader->setRelaxNGSchemaSource() -- Zeichenkette setzen, die RelaxNG-Schemadaten enthält
XMLReader->XML() -- Zeichenkette setzen, deren Inhalt geparst werden soll