PHP Manual
Prev |  | Next

# CLXXIII. XMLReader functions

# Introduction

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

# Installation

The XMLReader extension is available in PECL for PHP 5.0 and is included and enabled in PHP 5.1 by default. It can be enabled by adding the argument --enable-xmlreader (or --with-xmlreader before 5.1) to your configure line. The libxml extension is required.

# Predefined Classes

## XMLReader

### Methods

- XMLReader->close() - Close the XMLReader input

- XMLReader->expand() - Export current node to a DOM node

- XMLReader->getAttribute() - Get value of attribute by name

- XMLReader->getAttributeNo() - Get value of attribute by position

- XMLReader->getAttributeNS() - Get value of attribute by name and URI

- XMLReader->getParserProperty() - Indicates if parser property is set or not

- XMLReader->isValid() - Indicates if document is valid

- XMLReader->lookupNamespace() - Get URI for prefix in scope of node

- XMLReader->moveToAttribute() - Positions reader on named attribute

- XMLReader->moveToAttributeNo() - Positions reader on attribute by index

- XMLReader->moveToAttributeNs() - Position reader on attribute by name and URI

- XMLReader->moveToElement() - Move to parent element of current attribute node

- XMLReader->moveToFirstAttribute() - Move to first attribute of node

- XMLReader->moveToNextAttribute() - Move to next attribute of node

- XMLReader->next() - Move to next element skipping children

- XMLReader->open() - Set URI to be parsed

- XMLReader->read() - Move to next node in stream

- XMLReader->setParserProperty() - Set parser property

- XMLReader->setRelaxNGSchema() - Set URI of RelaxNG schema to validate against

- XMLReader->setRelaxNGSchemaSource() - Set string containing RelaxNG schema to validate against

- XMLReader->XML() - Set string of data to be parsed

### Properties

Table 1.

Name | Type | Read-only | Description
--- | --- | --- | ---
attributeCount | int | yes | The number of attributes on the node
baseURI | string | yes | The base URI of the node
depth | int | yes | Depth of the node in the tree starting at 0
hasAttributes | bool | yes | Indicates if node has attributes
hasValue | bool | yes | Indicates if node has a text value
isDefault | bool | yes | Indicates if attribute is defaulted from DTD
isEmptyElement | bool | yes | Indicates if node is an empty element tag
localName | string | yes | The local name of the node
name | string | yes | The qualified name of the node
namespaceURI | string | yes | The URI of the namespace associated with the node
nodeType | int | yes | The node type for the node
prefix | string | yes | The prefix of the namespace associated with the node
value | string | yes | The text value of the node
xmlLang | string | yes | The xml:lang scope which the node resides

# Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Warning
XMLReader uses class constants since PHP 5.1. Prior releases use global constants in the form `XMLREADER_ELEMENT`.

Table 2. XMLReader Node Types

Constant | Value | Description
--- | --- | ---
`XMLReader::NONE` (integer) | 0 | No node type
`XMLReader::ELEMENT` (integer) | 1 | Start element
`XMLReader::ATTRIBUTE` (integer) | 2 | Attribute node
`XMLReader::TEXT` (integer) | 3 | Text node
`XMLReader::CDATA` (integer) | 4 | CDATA node
`XMLReader::ENTITY_REF` (integer) | 5 | Entity Reference node
`XMLReader::ENTITY` (integer) | 6 | Entity Declaration node
`XMLReader::PI` (integer) | 7 | Processing Instruction node
`XMLReader::COMMENT` (integer) | 8 | Comment node
`XMLReader::DOC` (integer) | 9 | Document node
`XMLReader::DOC_TYPE` (integer) | 10 | Document Type node
`XMLReader::DOC_FRAGMENT` (integer) | 11 | Document Fragment node
`XMLReader::NOTATION` (integer) | 12 | Notation node
`XMLReader::WHITESPACE` (integer) | 13 | Whitespace node
`XMLReader::SIGNIFICANT_WHITESPACE` (integer) | 14 | Significant Whitespace node
`XMLReader::END_ELEMENT` (integer) | 15 | End Element
`XMLReader::END_ENTITY` (integer) | 16 | End Entity
`XMLReader::XML_DECLARATION` (integer) | 17 | XML Declaration node

Table 3. XMLReader Parser Options

Constant | Value | Description
--- | --- | ---
`XMLReader::LOADDTD` (integer) | 1 | Load DTD but do not validate
`XMLReader::DEFAULTATTRS` (integer) | 2 | Load DTD and default attributes but do not validate
`XMLReader::VALIDATE` (integer) | 3 | Load DTD and validate while parsing
`XMLReader::SUBST_ENTITIES` (integer) | 4 | Substitute entities and expand references

Prev | Home | Next
xmlrpc_set_type | Up | XMLReader->close()