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