CLXVIII. 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 and 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

Properties

Table 1.

NameTypeRead-onlyDescription
attributeCountintyesThe number of attributes on the node
baseURIstringyesThe base URI of the node
depthintyesDepth of the node in the tree starting at 0
hasAttributesboolyesIndicates if node has attributes
hasValueboolyesIndicates if node has a text value
isDefaultboolyesIndicates if attribute is defaulted from DTD
isEmptyElementboolyesIndicates if node is an empty element tag
localNamestringyesThe local name of the node
namestringyesThe qualified name of the node
namespaceURIstringyesThe URI of the namespace associated with the node
nodeTypeintyesThe node type for the node
prefixstringyesThe prefix of the namespace associated with the node
valuestringyesThe text value of the node
xmlLangstringyesThe 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

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

Table 3. XMLReader Parser Options

ConstantValueDescription
XMLReader::LOADDTD (integer) 1Load DTD but do not validate
XMLReader::DEFAULTATTRS (integer) 2Load DTD and default attributes but do not validate
XMLReader::VALIDATE (integer) 3Load DTD and validate while parsing
XMLReader::SUBST_ENTITIES (integer) 4Subsitute entities and expand references
Table of Contents
XMLReader->close() -- Close the XMLReader input
XMLReader->expand() -- Returns a copy of the current node as a DOM object
XMLReader->getAttribute() -- Get the value of a named attribute
XMLReader->getAttributeNo() -- Get the value of an attribute by index
XMLReader->getAttributeNS() -- Get the value of an attribute by localname and URI
XMLReader->getParserProperty() --  Indicates if specified property has been set
XMLReader->isValid() -- Indicates if the parsed document is valid
XMLReader->lookupNamespace() -- Lookup namespace for a prefix
XMLReader->moveToAttribute() -- Move cursor to a named attribute
XMLReader->moveToAttributeNo() -- Move cursor to an attribute by index
XMLReader->moveToAttributeNs() -- Move cursor to a named attribute
XMLReader->moveToElement() -- Position cursor on the parent Element of current Attribute
XMLReader->moveToFirstAttribute() -- Position cursor on the first Attribute
XMLReader->moveToNextAttribute() -- Position cursor on the next Attribute
XMLReader->next() -- Move cursor to next node skipping all subtrees
XMLReader->open() -- Set the URI containing the XML to parse
XMLReader->read() -- Move to next node in document
XMLReader->setParserProperty() -- Set or Unset parser options
XMLReader->setRelaxNGSchema() -- Set the filename or URI for a RelaxNG Schema
XMLReader->setRelaxNGSchemaSource() -- Set the data containing a RelaxNG Schema
XMLReader->XML() -- Set the data containing the XML to parse