PHP Handbuch
Zurück |  | Weiter

# CLXXXI. 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.0 unter PECL zur Verfügung. Ab PHP 5.1.0 ist sie standardmäßig enthalten und aktiviert. Sie wird durch die Option `--enable-xmlreader` (oder `--with-xmlreader` vor PHP 5.1.0) aktiviert. Die libxml Erweiterung wird vorausgesetzt.

# Vordefinierte Klassen

## XMLReader

### Methoden

- XMLReader->close - XMLReader-Eingabe beenden

- XMLReader->expand - Aktuellen Knoten in einen DOM-Knoten exportieren

- 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 Namen und URI zurück

- XMLReader->getParserProperty - Anzeigen, ob Parsereigenschaften gesetzt sind oder nicht

- XMLReader->isValid - Anzeigen, ob ein valides Dokument vorliegt

- XMLReader->lookupNamespace - Gibt URI für einen Präfix im Knotenbereich zurück

- XMLReader->moveToAttribute - Reader positionieren nach Attributnamen

- XMLReader->moveToAttributeNo - Reader positionieren nach Attributnamen und Position

- XMLReader->moveToAttributeNs - Reader positionieren nach Attributnamen und URI

- XMLReader->moveToElement - Reader positionieren auf Elternelement des aktuellen Attributknotens

- XMLReader->moveToFirstAttribute - Reader positionieren auf erstes Attribut im Knoten

- XMLReader->moveToNextAttribute - Reader positionieren auf nächstes Attribut im Knoten

- XMLReader->next - Reader positionieren auf nächstes Element, Kinder überspringen

- XMLReader->open - URI setzen, die geparst werden soll

- XMLReader->read - Reader positionieren auf nächstes Element

- XMLReader->setParserProperty - Parsereigenschaft setzen

- XMLReader->setRelaxNGSchema - RelaxNG-Schema-URI setzen, gegen die validiert werden soll

- XMLReader->setRelaxNGSchemaSource - Zeichenkette setzen, die RelaxNG-Schemadaten enthält, gegen die validiert werden soll

- XMLReader->XML - Zeichenkette setzen, deren Inhalt geparst werden soll

### Eigenschaften

Tabelle 1.

Name | Typ | nur lesen | Beschreibung
--- | --- | --- | ---
attributeCount | int | ja | Anzahl Attribute eines Knotens
baseURI | string | ja | Basis URI des Knotens
depth | int | ja | Knotentiefe im Strukturbaum beginnend bei 0
hasAttributes | bool | ja | Zeigt an, ob ein Knoten Attribute besitzt
hasValue | bool | ja | Zeigt an, ob ein Knoten einen Textwert besitzt
isDefault | bool | ja | Zeigt an, ob ein Knoten durch DTD disqualifiziert wurde
isEmptyElement | bool | ja | Zeigt an, ob ein Knoten ein Leerelement ist
localName | string | ja | Lokaler Knotenname
name | string | ja | Qualifizierter Knotenname
namespaceURI | string | ja | URI des Namensraum dem der Knoten zugehört
nodeType | int | ja | Knotentyp
prefix | string | ja | Präfix des Namensraum dem der Knoten zugehört
value | string | ja | Textwert des Knotens
xmlLang | string | ja | Der 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

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

Tabelle 3. Parseroptionen

Konstante | Wert | Beschreibung
--- | --- | ---
`XMLReader::LOADDTD` (integer) | 1 | DTD laden, aber nicht validieren
`XMLReader::DEFAULTATTRS` (integer) | 2 | DTD und Standardattribute laden, aber nicht validieren
`XMLReader::VALIDATE` (integer) | 3 | DTD laden und während dem Parsen validieren
`XMLReader::SUBST_ENTITIES` (integer) | 4 | Entitäten ersetzen und Referenzen erweitern

Zurück | Zum Anfang | Weiter
xmlrpc_set_type | Nach oben | XMLReader->close