|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.xml.stream.util.StreamReaderDelegate
public class StreamReaderDelegate
该类是用于派生 XMLStreamReader 过滤器的基类。 此类设计用于 XMLStreamReader 和应用程序的 XMLStreamReader 之间。默认情况下,每种方法除了调用父接口中的相应方法之外,不执行任何操作。
XMLStreamReader
,
EventReaderDelegate
字段摘要 |
---|
从接口 javax.xml.stream.XMLStreamConstants 继承的字段 |
---|
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT |
构造方法摘要 | |
---|---|
StreamReaderDelegate()
构造没有父过滤器的空过滤器。 |
|
StreamReaderDelegate(XMLStreamReader reader)
用指定的父过滤器来构造一个过滤器。 |
方法摘要 | |
---|---|
void |
close()
释放与此 Reader 关联的所有资源。 |
int |
getAttributeCount()
返回此 START_ELEMENT 中的属性计数,此方法仅对 START_ELEMENT 或 ATTRIBUTE 有效。 |
String |
getAttributeLocalName(int index)
返回所提供索引处的属性的 localName |
QName |
getAttributeName(int index)
返回所提供索引处的属性的 qname |
String |
getAttributeNamespace(int index)
返回所提供索引处的属性的名称空间 |
String |
getAttributePrefix(int index)
返回所提供索引处的属性的前缀 |
String |
getAttributeType(int index)
返回所提供索引处的属性的 XML 类型 |
String |
getAttributeValue(int index)
返回 index 处的属性值 |
String |
getAttributeValue(String namespaceUri,
String localName)
返回带有名称空间和 localName 的属性的规范化属性值。 |
String |
getCharacterEncodingScheme()
返回 xml 声明中声明的字符编码。 |
String |
getElementText()
读取纯文本元素的内容,如果不是纯文本元素,则抛出异常。 |
String |
getEncoding()
如果输入编码已知,则返回输入编码;如果未知,则返回 null。 |
int |
getEventType()
返回一个整数码,指示光标所指向的事件的类型。 |
String |
getLocalName()
返回当前事件的(本地)名称。 |
Location |
getLocation()
返回处理器的当前位置。 |
QName |
getName()
返回当前 START_ELEMENT 或 END_ELEMENT 事件的 QName |
NamespaceContext |
getNamespaceContext()
返回当前位置的只读名称空间上下文。 |
int |
getNamespaceCount()
返回在 START_ELEMENT 或 END_ELEMENT 中声明的名称空间的计数,此方法仅对 START_ELEMENT、END_ELEMENT 或 NAMESPACE 有效。 |
String |
getNamespacePrefix(int index)
返回在 index 处声明的名称空间前缀。 |
String |
getNamespaceURI()
如果当前事件是 START_ELEMENT 或 END_ELEMENT,则此方法返回前缀的 URI 或默认名称空间。 |
String |
getNamespaceURI(int index)
返回在 index 处声明的名称空间 URI。 |
String |
getNamespaceURI(String prefix)
返回给定前缀的 URI。 |
XMLStreamReader |
getParent()
获取此实例的父实例。 |
String |
getPIData()
获取处理指令的数据节 |
String |
getPITarget()
获取处理指令的目标 |
String |
getPrefix()
返回当前事件的前缀,如果事件没有前缀,则返回 null |
Object |
getProperty(String name)
从底层实现获取功能/属性的值 |
String |
getText()
以字符串的形式返回解析事件的当前值,此方法返回 CHARACTERS 事件的字符串值,返回 COMMENT 的值、ENTITY_REFERENCE 的替代值、CDATA 节的字符串值、SPACE 事件的字符串值、DTD 内部子集的字符串值。 |
char[] |
getTextCharacters()
返回一个包含此事件中字符的数组。 |
int |
getTextCharacters(int sourceStart,
char[] target,
int targetStart,
int length)
获取与 CHARACTERS、SPACE 或 CDATA 事件关联的文本。 |
int |
getTextLength()
返回文本字符数组中此文本事件的字符序列长度。 |
int |
getTextStart()
返回存储(此文本事件的)第一个字符位置处的文本字符数组的偏移量。 |
String |
getVersion()
获取在 xml 声明中声明的 xml 版本,如果没有声明版本,则返回 null |
boolean |
hasName()
如果当前事件有名称(是 START_ELEMENT 或 END_ELEMENT),则返回 ture,否则返回 false |
boolean |
hasNext()
如果有多个解析事件,则返回 true,如果不再有事件,则返回 false。 |
boolean |
hasText()
如果当前事件具有文本,则返回 true,否则返回 false。 |
boolean |
isAttributeSpecified(int index)
返回一个 boolean 值,它指示此属性是否为默认创建的 |
boolean |
isCharacters()
如果光标指向字符数据事件,则返回 true |
boolean |
isEndElement()
如果光标指向结束标记,则返回 true(否则返回 false) |
boolean |
isStandalone()
获取 xml 声明中的独立声明 |
boolean |
isStartElement()
如果光标指向开始标记,则返回 true(否则返回 false) |
boolean |
isWhiteSpace()
如果光标指向由所有空格组成的字符数据事件,则返回 true |
int |
next()
获取下一个解析事件??处理器可以用单个存储块返回所有连续的字符数据,它也可以将其分割成几个存储块。 |
int |
nextTag()
在到达 START_ELEMENT 或 END_ELEMENT 之前,跳过所有空格(isWhiteSpace() 返回 true)、COMMENT 或 PROCESSING_INSTRUCTION。 |
void |
require(int type,
String namespaceURI,
String localName)
测试当前事件是否属于给定的类型,以及名称空间和名称是否与当前事件的当前名称空间和名称相匹配。 |
void |
setParent(XMLStreamReader reader)
设置此实例的父实例。 |
boolean |
standaloneSet()
检查文档中是否设置了独立 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public StreamReaderDelegate()
public StreamReaderDelegate(XMLStreamReader reader)
reader
- 父过滤器方法详细信息 |
---|
public void setParent(XMLStreamReader reader)
reader
- 新的父实例public XMLStreamReader getParent()
public int next() throws XMLStreamException
XMLStreamReader
复制的描述假设给定以下 XML:
<foo><!--description-->内容文本<![CDATA[<greeting>Hello</greeting>]]>其他内容</foo>
对 foo 调用 next() 的行为将是:
1- 注释 (COMMENT)
2- 然后是字符节 (CHARACTERS)
3- 接下来是 CDATA 节(另一个 CHARACTERS)
4- 再接下来是下一个字符节 (另一个 CHARACTERS)
5- 最后是 END_ELEMENT
注: 空元素(如 <tag/>)将用以下两个单独的事件报告:START_ELEMENT 和 END_ELEMENT??这保证了空元素对 <tag></tag> 解析的等效性。 如果是在 hasNext() 返回 false 之后调用此方法,则此方法将抛出 IllegalStateException。
XMLStreamReader
中的 next
XMLStreamException
- 如果处理底层 XML 源时发生错误XMLEvent
public int nextTag() throws XMLStreamException
XMLStreamReader
复制的描述int eventType = next(); while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace || (eventType == XMLStreamConstants.CDATA && isWhiteSpace()) // skip whitespace || eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION || eventType == XMLStreamConstants.COMMENT ) { eventType = next(); } if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) { throw new String XMLStreamException("expected start or end tag", getLocation()); } return eventType;
XMLStreamReader
中的 nextTag
XMLStreamException
- 如果当前事件不是空格、PROCESSING_INSTRUCTION、START_ELEMENT 或 END_ELEMENTpublic String getElementText() throws XMLStreamException
XMLStreamReader
复制的描述if(getEventType() != XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException( "parser must be on START_ELEMENT to read next text", getLocation()); } int eventType = next(); StringBuffer content = new StringBuffer(); while(eventType != XMLStreamConstants.END_ELEMENT ) { if(eventType == XMLStreamConstants.CHARACTERS || eventType == XMLStreamConstants.CDATA || eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.ENTITY_REFERENCE) { buf.append(getText()); } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION || eventType == XMLStreamConstants.COMMENT) { // skipping } else if(eventType == XMLStreamConstants.END_DOCUMENT) { throw new XMLStreamException( "unexpected end of document when reading element text content", this); } else if(eventType == XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException( "element text content may not contain START_ELEMENT", getLocation()); } else { throw new XMLStreamException( "Unexpected event type "+eventType, getLocation()); } eventType = next(); } return buf.toString();
XMLStreamReader
中的 getElementText
XMLStreamException
- 如果当前事件不是 START_ELEMENT 或者遇到了非文本元素public void require(int type, String namespaceURI, String localName) throws XMLStreamException
XMLStreamReader
复制的描述
XMLStreamReader
中的 require
type
- 事件类型namespaceURI
- 事件的 URI,可以为 nulllocalName
- 事件的 localName,可以为 null
XMLStreamException
- 如果所需值不匹配。public boolean hasNext() throws XMLStreamException
XMLStreamReader
复制的描述
XMLStreamReader
中的 hasNext
XMLStreamException
- 如果检测下一个状态时发生严重错误public void close() throws XMLStreamException
XMLStreamReader
复制的描述
XMLStreamReader
中的 close
XMLStreamException
- 如果释放关联资源时发生错误public String getNamespaceURI(String prefix)
XMLStreamReader
复制的描述注:根据 Namespaces in XML 规范中的定义,'xml' 前缀被绑定到 "https://www.w3.org/XML/1998/namespace"。
注:'xmlns' 前缀必须被解析到以下名称空间:https://www.w3.org/2000/xmlns/
XMLStreamReader
中的 getNamespaceURI
prefix
- 要查找的前缀,不可以为 null
public NamespaceContext getNamespaceContext()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getNamespaceContext
public boolean isStartElement()
XMLStreamReader
复制的描述
XMLStreamReader
中的 isStartElement
public boolean isEndElement()
XMLStreamReader
复制的描述
XMLStreamReader
中的 isEndElement
public boolean isCharacters()
XMLStreamReader
复制的描述
XMLStreamReader
中的 isCharacters
public boolean isWhiteSpace()
XMLStreamReader
复制的描述
XMLStreamReader
中的 isWhiteSpace
public String getAttributeValue(String namespaceUri, String localName)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeValue
namespaceUri
- 属性的名称空间localName
- 属性的本地名称,不可以为 null
public int getAttributeCount()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeCount
public QName getAttributeName(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeName
index
- 属性的位置
public String getAttributePrefix(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributePrefix
index
- 属性的位置
public String getAttributeNamespace(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeNamespace
index
- 属性的位置
public String getAttributeLocalName(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeLocalName
index
- 属性的位置
public String getAttributeType(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeType
index
- 属性的位置
public String getAttributeValue(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getAttributeValue
index
- 属性的位置
public boolean isAttributeSpecified(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 isAttributeSpecified
index
- 属性的位置
public int getNamespaceCount()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getNamespaceCount
public String getNamespacePrefix(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getNamespacePrefix
index
- 名称空间声明的位置
public String getNamespaceURI(int index)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getNamespaceURI
index
- 名称空间声明的位置
public int getEventType()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getEventType
public String getText()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getText
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException
XMLStreamReader
复制的描述int length = 1024; char[] myBuffer = new char[ length ];
for ( int sourceStart = 0 ; ; sourceStart += length ) { int nCopied = stream.getTextCharacters( sourceStart, myBuffer, 0, length );
if (nCopied < length) break; }
如果在底层源中存在任何 XML 错误,则抛出 XMLStreamException。"targetStart" 参数必须大于等于 0 且小于 "target" 的长度,Length 必须大于 0,而 "targetStart + length" 必须小于等于 "target" 的长度。
XMLStreamReader
中的 getTextCharacters
sourceStart
- 要复制的源数组中第一个字符的索引target
- 目标数组targetStart
- 目标数组中的起始偏移量length
- 要复制的字符数
XMLStreamException
- 如果底层 XML 源不是格式良好的public char[] getTextCharacters()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getTextCharacters
public int getTextStart()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getTextStart
public int getTextLength()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getTextLength
public String getEncoding()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getEncoding
public boolean hasText()
XMLStreamReader
复制的描述
XMLStreamReader
中的 hasText
public Location getLocation()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getLocation
public QName getName()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getName
public String getLocalName()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getLocalName
public boolean hasName()
XMLStreamReader
复制的描述
XMLStreamReader
中的 hasName
public String getNamespaceURI()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getNamespaceURI
public String getPrefix()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getPrefix
public String getVersion()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getVersion
public boolean isStandalone()
XMLStreamReader
复制的描述
XMLStreamReader
中的 isStandalone
public boolean standaloneSet()
XMLStreamReader
复制的描述
XMLStreamReader
中的 standaloneSet
public String getCharacterEncodingScheme()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getCharacterEncodingScheme
public String getPITarget()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getPITarget
public String getPIData()
XMLStreamReader
复制的描述
XMLStreamReader
中的 getPIData
public Object getProperty(String name)
XMLStreamReader
复制的描述
XMLStreamReader
中的 getProperty
name
- 属性的名称,不可以为 null
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。