The XMLReader class

- « Resource Types

- XMLReader::close »

- PHP Manual
- XMLReader
- The XMLReader class

# The XMLReader class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

## 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.

## Class synopsis

class XMLReader {
/* Constants */
public const int NONE;
public const int ELEMENT;
public const int ATTRIBUTE;
public const int TEXT;
public const int CDATA;
public const int ENTITY_REF;
public const int ENTITY;
public const int PI;
public const int COMMENT;
public const int DOC;
public const int DOC_TYPE;
public const int DOC_FRAGMENT;
public const int NOTATION;
public const int WHITESPACE;
public const int SIGNIFICANT_WHITESPACE;
public const int END_ELEMENT;
public const int END_ENTITY;
public const int XML_DECLARATION;
public const int LOADDTD;
public const int DEFAULTATTRS;
public const int VALIDATE;
public const int SUBST_ENTITIES;
/* Properties */
public int $attributeCount;
public string $baseURI;
public int $depth;
public bool $hasAttributes;
public bool $hasValue;
public bool $isDefault;
public bool $isEmptyElement;
public string $localName;
public string $name;
public string $namespaceURI;
public int $nodeType;
public string $prefix;
public string $value;
public string $xmlLang;
/* Methods */
public close(): true
public expand(?DOMNode `$baseNode` = `null`): DOMNode|false
public getAttribute(string `$name`): ?string
public getAttributeNo(int `$index`): ?string
public getAttributeNs(string `$name`, string `$namespace`): ?string
public getParserProperty(int `$property`): bool
public isValid(): bool
public lookupNamespace(string `$prefix`): ?string
public moveToAttribute(string `$name`): bool
public moveToAttributeNo(int `$index`): bool
public moveToAttributeNs(string `$name`, string `$namespace`): bool
public moveToElement(): bool
public moveToFirstAttribute(): bool
public moveToNextAttribute(): bool
public next(?string `$name` = `null`): bool
public static open(string `$uri`, ?string `$encoding` = `null`, int `$flags` = 0): bool|XMLReader
public read(): bool
public readInnerXml(): string
public readOuterXml(): string
public readString(): string
public setParserProperty(int `$property`, bool `$value`): bool
public setRelaxNGSchema(?string `$filename`): bool
public setRelaxNGSchemaSource(?string `$source`): bool
public setSchema(?string `$filename`): bool
public static XML(string `$source`, ?string `$encoding` = `null`, int `$flags` = 0): bool|XMLReader
}

## Properties

attributeCount

  The number of attributes on the node

baseURI

  The base URI of the node

depth

  Depth of the node in the tree, starting at 0

hasAttributes

  Indicates if node has attributes

hasValue

  Indicates if node has a text value

isDefault

  Indicates if attribute is defaulted from DTD

isEmptyElement

  Indicates if node is an empty element tag

localName

  The local name of the node

name

  The qualified name of the node

namespaceURI

  The URI of the namespace associated with the node

nodeType

  The node type for the node

prefix

  The prefix of the namespace associated with the node

value

  The text value of the node

xmlLang

  The xml:lang scope which the node resides

## Predefined Constants

## XMLReader Node Types

`XMLReader::NONE`

  No node type

`XMLReader::ELEMENT`

  Start element

`XMLReader::ATTRIBUTE`

  Attribute node

`XMLReader::TEXT`

  Text node

`XMLReader::CDATA`

  CDATA node

`XMLReader::ENTITY_REF`

  Entity Reference node

`XMLReader::ENTITY`

  Entity Declaration node

`XMLReader::PI`

  Processing Instruction node

`XMLReader::COMMENT`

  Comment node

`XMLReader::DOC`

  Document node

`XMLReader::DOC_TYPE`

  Document Type node

`XMLReader::DOC_FRAGMENT`

  Document Fragment node

`XMLReader::NOTATION`

  Notation node

`XMLReader::WHITESPACE`

  Whitespace node

`XMLReader::SIGNIFICANT_WHITESPACE`

  Significant Whitespace node

`XMLReader::END_ELEMENT`

  End Element

`XMLReader::END_ENTITY`

  End Entity

`XMLReader::XML_DECLARATION`

  XML Declaration node

## XMLReader Parser Options

`XMLReader::LOADDTD`

  Load DTD but do not validate

`XMLReader::DEFAULTATTRS`

  Load DTD and default attributes but do not validate

`XMLReader::VALIDATE`

  Load DTD and validate while parsing

`XMLReader::SUBST_ENTITIES`

  Substitute 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::readInnerXml — Retrieve XML from current node
- XMLReader::readOuterXml — Retrieve XML from current node, including itself
- XMLReader::readString — Reads the contents of the current node as a string
- XMLReader::setParserProperty — Set parser options
- XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema
- XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
- XMLReader::setSchema — Validate document against XSD
- XMLReader::XML — Set the data containing the XML to parse