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.
It is important to note that internally, libxml uses the UTF-8 encoding and as such, the encoding of the retrieved contents will always be in UTF-8 encoding.
The XMLReader extension is available in PECL as of PHP 5.0.0 and is included and enabled as of PHP 5.1.0 by default. It can be enabled by adding the argument --enable-xmlreader (or --with-xmlreader before 5.1.0) to your configure line. The libxml extension is required.
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
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 |
以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。
XMLReader uses class constants since PHP 5.1. Prior releases use global constants in the form XMLREADER_ELEMENT.
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 |
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 |