Класс XMLReader

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

Введение

Модуль XMLReader — Pull-парсер XML-документов. Класс-читатель действует как курсор, который двигается вперёд по потоку документа и по пути останавливается на каждом узле.

Обзор класса

class XMLReader {
/* Константы */
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 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;
/* Свойства */
public int $depth;
public bool $hasValue;
public string $name;
public int $nodeType;
public string $prefix;
public string $value;
/* Методы */
public close(): true
public expand(?DOMNode $baseNode = null): DOMNode|false
public static fromStream(
    resource $stream,
    ?string $encoding = null,
    int $flags = 0,
    ?string $documentUri = null
): static
public static fromString(string $source, ?string $encoding = null, int $flags = 0): static
public static fromUri(string $uri, ?string $encoding = null, int $flags = 0): static
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 next(?string $name = null): bool
public static open(string $uri, ?string $encoding = null, int $flags = 0): XMLReader
public open(string $uri, ?string $encoding = null, int $flags = 0): bool
public read(): bool
public readString(): string
public setParserProperty(int $property, bool $value): bool
public setRelaxNGSchema(?string $filename): bool
public setSchema(?string $filename): bool
public static XML(string $source, ?string $encoding = null, int $flags = 0): XMLReader
public XML(string $source, ?string $encoding = null, int $flags = 0): bool
}

Свойства

attributeCount

Количество атрибутов в узле

baseURI

Базовый URI-идентификатор узла

depth

Глубина узла в дереве, начиная с 0

hasAttributes

Указывает, содержит ли узел атрибуты

hasValue

Указывает, содержит ли узел текстовое значение

isDefault

Указывает, относится ли значение атрибута к значениям по умолчанию из DTD-определения

isEmptyElement

Указывает, содержит ли узел тег пустого элемента

localName

Локальное имя узла

name

Полное имя узла

namespaceURI

URI-идентификатор пространства имён, который связан с узлом

nodeType

Тип узла

prefix

Префикс пространства имён, который связан с узлом

value

Текстовое значение узла

xmlLang

Языковая область действия атрибута xml:lang, которой принадлежит узел

Предопределённые константы

Типы узлов, которые распознаёт парсер XMLReader

XMLReader::NONE

Нет типа узла

XMLReader::ELEMENT

Начало элемента

XMLReader::ATTRIBUTE

Узел атрибута

XMLReader::TEXT

Текстовый узел

XMLReader::CDATA

Узел CDATA

XMLReader::ENTITY_REF

Узел ссылки на сущность

XMLReader::ENTITY

Узел объявления сущности

XMLReader::PI

Узел инструкций обработки

XMLReader::COMMENT

Узел комментария

XMLReader::DOC

Узел документа

XMLReader::DOC_TYPE

Узел типа документа

XMLReader::DOC_FRAGMENT

Узел фрагмента документа

XMLReader::NOTATION

Узел нотации

XMLReader::WHITESPACE

Пробельный узел

XMLReader::SIGNIFICANT_WHITESPACE

Значимый пробельный узел

XMLReader::END_ELEMENT

Завершение элемента

XMLReader::END_ENTITY

Завершение сущности

XMLReader::XML_DECLARATION

Узел XML-объявления

Опции парсера XMLReader

XMLReader::LOADDTD

Загружать DTD-определение, но не проверять

XMLReader::DEFAULTATTRS

Загружать DTD-определение и атрибуты по умолчанию, но не проверять

XMLReader::VALIDATE

Загружать DTD-определение и проверять при разборе

XMLReader::SUBST_ENTITIES

Заменять сущности и разворачивать ссылки

Список изменений

Версия Описание
8.4.0 Константы класса стали типизированными.

Содержание