|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.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 中的 nextXMLStreamException - 如果處理底層 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 中的 nextTagXMLStreamException - 如果當前事件不是空格、PROCESSING_INSTRUCTION、START_ELEMENT 或 END_ELEMENT
public 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 中的 getElementTextXMLStreamException - 如果當前事件不是 START_ELEMENT 或者遇到了非文本元素
public void require(int type,
String namespaceURI,
String localName)
throws XMLStreamException
XMLStreamReader 複製的描述
XMLStreamReader 中的 requiretype - 事件型別namespaceURI - 事件的 URI,可以為 nulllocalName - 事件的 localName,可以為 null
XMLStreamException - 如果所需值不比對。
public boolean hasNext()
throws XMLStreamException
XMLStreamReader 複製的描述
XMLStreamReader 中的 hasNextXMLStreamException - 如果檢測下一個狀態時發生嚴重錯誤
public void close()
throws XMLStreamException
XMLStreamReader 複製的描述
XMLStreamReader 中的 closeXMLStreamException - 如果釋放關聯資源時發生錯誤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 中的 getNamespaceURIprefix - 要尋找的前綴,不可以為 null
public NamespaceContext getNamespaceContext()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamespaceContextpublic boolean isStartElement()
XMLStreamReader 複製的描述
XMLStreamReader 中的 isStartElementpublic boolean isEndElement()
XMLStreamReader 複製的描述
XMLStreamReader 中的 isEndElementpublic boolean isCharacters()
XMLStreamReader 複製的描述
XMLStreamReader 中的 isCharacterspublic boolean isWhiteSpace()
XMLStreamReader 複製的描述
XMLStreamReader 中的 isWhiteSpace
public String getAttributeValue(String namespaceUri,
String localName)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeValuenamespaceUri - 屬性的名稱空間localName - 屬性的本地名稱,不可以為 null
public int getAttributeCount()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeCountpublic QName getAttributeName(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeNameindex - 屬性的位置
public String getAttributePrefix(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributePrefixindex - 屬性的位置
public String getAttributeNamespace(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeNamespaceindex - 屬性的位置
public String getAttributeLocalName(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeLocalNameindex - 屬性的位置
public String getAttributeType(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeTypeindex - 屬性的位置
public String getAttributeValue(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getAttributeValueindex - 屬性的位置
public boolean isAttributeSpecified(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 isAttributeSpecifiedindex - 屬性的位置
public int getNamespaceCount()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamespaceCountpublic String getNamespacePrefix(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamespacePrefixindex - 名稱空間宣告的位置
public String getNamespaceURI(int index)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamespaceURIindex - 名稱空間宣告的位置
public int getEventType()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getEventTypepublic 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 中的 getTextCharacterssourceStart - 要複製的源陣列中第一個字元的索引target - 目標陣列targetStart - 目標陣列中的起始偏移量length - 要複製的字元數
XMLStreamException - 如果底層 XML 源不是格式良好的public char[] getTextCharacters()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getTextCharacterspublic int getTextStart()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getTextStartpublic int getTextLength()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getTextLengthpublic String getEncoding()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getEncodingpublic boolean hasText()
XMLStreamReader 複製的描述
XMLStreamReader 中的 hasTextpublic Location getLocation()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getLocationpublic QName getName()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamepublic String getLocalName()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getLocalNamepublic boolean hasName()
XMLStreamReader 複製的描述
XMLStreamReader 中的 hasNamepublic String getNamespaceURI()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getNamespaceURIpublic String getPrefix()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getPrefixpublic String getVersion()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getVersionpublic boolean isStandalone()
XMLStreamReader 複製的描述
XMLStreamReader 中的 isStandalonepublic boolean standaloneSet()
XMLStreamReader 複製的描述
XMLStreamReader 中的 standaloneSetpublic String getCharacterEncodingScheme()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getCharacterEncodingSchemepublic String getPITarget()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getPITargetpublic String getPIData()
XMLStreamReader 複製的描述
XMLStreamReader 中的 getPIDatapublic Object getProperty(String name)
XMLStreamReader 複製的描述
XMLStreamReader 中的 getPropertyname - 屬性的名稱,不可以為 null
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。