XmlReader允许您从流或者XML文档中访问XML数据。这个类提供了对XML数据快速、非缓存、只读、只向前的访问方式。
此扩展需要 libxml PHP 扩展。这表示需要使用--enable-libxml,尽管这将隐式完成因为 libxml 是缺省开启的。
安装
XMLReader扩展最初是PHP 5的PECL扩展。它后来从PHP 5.1.0开始被移动到PHP源代码(捆绑),并在PHP 5.1.2以后默认启用.
此扩展默认为启用,编译时可通过下列选项禁用:--disable-xmlreader
XMLReader类
(PHP 5 >= 5.1.0, PHP 7)
XMLReader扩展是一个XML Pull解析器。读卡器充当一个光标,在文档流上前进并在途中的每个节点处停止。
XMLReader 
{
	/* 常量 */
	const int NONE = 0 ;
	const int ELEMENT = 1 ;
	const int ATTRIBUTE = 2 ;
	const int TEXT = 3 ;
	const int CDATA = 4 ;
	const int ENTITY_REF = 5 ;
	const int ENTITY = 6 ;
	const int PI = 7 ;
	const int COMMENT = 8 ;
	const int DOC = 9 ;
	const int DOC_TYPE = 10 ;
	const int DOC_FRAGMENT = 11 ;
	const int NOTATION = 12 ;
	const int WHITESPACE = 13 ;
	const int SIGNIFICANT_WHITESPACE = 14 ;
	const int END_ELEMENT = 15 ;
	const int END_ENTITY = 16 ;
	const int XML_DECLARATION = 17 ;
	const int LOADDTD = 1 ;
	const int DEFAULTATTRS = 2 ;
	const int VALIDATE = 3 ;
	const int SUBST_ENTITIES = 4 ;
	/* 属性 */
	public readonly int $attributeCount ;
	public readonly string $baseURI ;
	public readonly int $depth ;
	public readonly bool $hasAttributes ;
	public readonly bool $hasValue ;
	public readonly bool $isDefault ;
	public readonly bool $isEmptyElement ;
	public readonly string $localName ;
	public readonly string $name ;
	public readonly string $namespaceURI ;
	public readonly int $nodeType ;
	public readonly string $prefix ;
	public readonly string $value ;
	public readonly string $xmlLang ;
	/* 方法 */
	public close ( void ) : bool
	public expand ([ DOMNode $basenode ] ) : DOMNode
	public getAttribute ( string $name ) : string
	public getAttributeNo ( int $index ) : string
	public getAttributeNs ( string $localName , string $namespaceURI ) : string
	public getParserProperty ( int $property ) : bool
	public isValid ( void ) : bool
	public lookupNamespace ( string $prefix ) : string
	public moveToAttribute ( string $name ) : bool
	public moveToAttributeNo ( int $index ) : bool
	public moveToAttributeNs ( string $localName , string $namespaceURI ) : bool
	public moveToElement ( void ) : bool
	public moveToFirstAttribute ( void ) : bool
	public moveToNextAttribute ( void ) : bool
	public next ([ string $localname ] ) : bool
	public open ( string $URI [, string $encoding [, int $options = 0 ]] ) : bool
	public read ( void ) : bool
	public readInnerXml ( void ) : string
	public readOuterXml ( void ) : string
	public readString ( void ) : string
	public setParserProperty ( int $property , bool $value ) : bool
	public setRelaxNGSchema ( string $filename ) : bool
	public setRelaxNGSchemaSource ( string $source ) : bool
	public setSchema ( string $filename ) : bool
	public xml ( string $source [, string $encoding [, int $options = 0 ]] ) : bool
}
属性
- $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
预定义常量
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
