|
JavaTM 2 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' 前綴被綁定到 "http://www.w3.org/XML/1998/namespace"。
註:'xmlns' 前綴必須被解析到以下名稱空間:http://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 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。