public class StreamReaderDelegate extends Object implements XMLStreamReader
XMLStreamReader、EventReaderDelegateATTRIBUTE, 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() |
このリーダーに関連付けられているリソースをすべて解放します。
|
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) |
インデックスにある属性の値を返します。
|
String |
getAttributeValue(String namespaceUri, String localName) |
名前空間とlocalNameを持つ属性の正規化された属性値を返します。namespaceURIがnullの場合、名前空間が一致するかどうかは確認されません。
|
String |
getCharacterEncodingScheme() |
XML宣言で宣言された文字エンコーディングを返します。宣言されていない場合はnullを返します。
|
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) |
指定されたインデックスで宣言された名前空間の接頭辞を返します。
|
String |
getNamespaceURI() |
現在のイベントがSTART_ELEMENTまたはEND_ELEMENTである場合、このメソッドは接頭辞のURIまたはデフォルトの名前空間を返します。
|
String |
getNamespaceURI(int 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)を持つ場合true、そうでない場合falseを返します。
|
boolean |
hasNext() |
構文解析イベントがまだある場合はtrue、そうでない場合はfalseを返します。
|
boolean |
hasText() |
現在のイベントにテキストが含まれる場合true、そうでない場合falseを返します。CHARACTERS、DTD、ENTITY_REFERENCE、COMMENT、SPACEの各イベントにはテキストが含まれます。
|
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() |
ドキュメントでスタンドアロンが設定されていたかどうかを確認します。
|
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-->content text<![CDATA[<greeting>Hello</greeting>]]>other content</foo>
fooに対するnext()呼出しの動作は次のとおりです。
1- コメント(COMMENT)
2- 文字セクション(CHARACTERS)
3- CDATAセクション(もう1つのCHARACTERS)
4- 次の文字セクション(もう1つのCHARACTERS)
5- END_ELEMENT
ノート: 空の要素(<tag/>など)は2つの別個のイベント、START_ELEMENTとEND_ELEMENTで報告されます。これにより、空の要素の解析が<tag></tag>と等しく保たれます。 hasNext()がfalseを返すと、このメソッドはIllegalStateExceptionをスローします。
next、インタフェースXMLStreamReaderXMLStreamException - ベースとなるXMLソースの処理にエラーが発生した場合XMLEventpublic 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;
nextTag、インタフェースXMLStreamReaderXMLStreamException - 現在のイベントが空白文字、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();
getElementText、インタフェースXMLStreamReaderXMLStreamException - 現在のイベントがSTART_ELEMENTでない場合、またはテキスト以外の要素が見つかった場合public void require(int type,
String namespaceURI,
String localName)
throws XMLStreamException
XMLStreamReaderrequire、インタフェースXMLStreamReadertype - イベントのタイプnamespaceURI - イベントのURI (nullの場合もある)localName - イベントのlocalName (nullの場合もある)XMLStreamException - 要求された値が一致しない場合。public boolean hasNext()
throws XMLStreamException
XMLStreamReaderhasNext、インタフェースXMLStreamReaderXMLStreamException - 次の状態の検出時に致命的なエラーが発生した場合public void close()
throws XMLStreamException
XMLStreamReaderclose、インタフェースXMLStreamReaderXMLStreamException - 関連付けられているリソースの解放でエラーが発生した場合public String getNamespaceURI(String prefix)
XMLStreamReaderノート:接頭辞「xml」は、「Namespaces in XML」勧告で定義されているように「http://www.w3.org/XML/1998/namespace」にバインドされます。
ノート: 接頭辞「xmlns」は名前空間http://www.w3.org/2000/xmlns/に解決される必要があります。
getNamespaceURI、インタフェースXMLStreamReaderprefix - 検索する接頭辞(null以外)public NamespaceContext getNamespaceContext()
XMLStreamReadergetNamespaceContext、インタフェースXMLStreamReaderpublic boolean isStartElement()
XMLStreamReaderisStartElement、インタフェースXMLStreamReaderpublic boolean isEndElement()
XMLStreamReaderisEndElement、インタフェースXMLStreamReaderpublic boolean isCharacters()
XMLStreamReaderisCharacters、インタフェースXMLStreamReaderpublic boolean isWhiteSpace()
XMLStreamReaderisWhiteSpace、インタフェースXMLStreamReaderpublic String getAttributeValue(String namespaceUri, String localName)
XMLStreamReadergetAttributeValue、インタフェースXMLStreamReadernamespaceUri - 属性の名前空間localName - 属性のローカル名(null以外)public int getAttributeCount()
XMLStreamReadergetAttributeCount、インタフェースXMLStreamReaderpublic QName getAttributeName(int index)
XMLStreamReadergetAttributeName、インタフェースXMLStreamReaderindex - 属性の位置public String getAttributePrefix(int index)
XMLStreamReadergetAttributePrefix、インタフェースXMLStreamReaderindex - 属性の位置public String getAttributeNamespace(int index)
XMLStreamReadergetAttributeNamespace、インタフェースXMLStreamReaderindex - 属性の位置public String getAttributeLocalName(int index)
XMLStreamReadergetAttributeLocalName、インタフェースXMLStreamReaderindex - 属性の位置public String getAttributeType(int index)
XMLStreamReadergetAttributeType、インタフェースXMLStreamReaderindex - 属性の位置public String getAttributeValue(int index)
XMLStreamReadergetAttributeValue、インタフェースXMLStreamReaderindex - 属性の位置public boolean isAttributeSpecified(int index)
XMLStreamReaderisAttributeSpecified、インタフェースXMLStreamReaderindex - 属性の位置public int getNamespaceCount()
XMLStreamReadergetNamespaceCount、インタフェースXMLStreamReaderpublic String getNamespacePrefix(int index)
XMLStreamReadergetNamespacePrefix、インタフェースXMLStreamReaderindex - 名前空間宣言の位置public String getNamespaceURI(int index)
XMLStreamReadergetNamespaceURI、インタフェースXMLStreamReaderindex - 名前空間宣言の位置public int getEventType()
XMLStreamReadergetEventType、インタフェースXMLStreamReaderpublic String getText()
XMLStreamReadergetText、インタフェースXMLStreamReaderpublic 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の長さ以下であることが必要です。 getTextCharacters、インタフェースXMLStreamReadersourceStart - コピー対象ソース配列内の最初の文字のインデックスtarget - 転送先配列targetStart - ターゲットの配列内での開始オフセットlength - コピーする文字数XMLStreamException - ベースとなるXMLソースが整形式でない場合public char[] getTextCharacters()
XMLStreamReadergetTextCharacters、インタフェースXMLStreamReaderpublic int getTextStart()
XMLStreamReadergetTextStart、インタフェースXMLStreamReaderpublic int getTextLength()
XMLStreamReadergetTextLength、インタフェースXMLStreamReaderpublic String getEncoding()
XMLStreamReadergetEncoding、インタフェースXMLStreamReaderpublic boolean hasText()
XMLStreamReaderhasText、インタフェースXMLStreamReaderpublic Location getLocation()
XMLStreamReadergetLocation、インタフェースXMLStreamReaderpublic QName getName()
XMLStreamReadergetName、インタフェースXMLStreamReaderpublic String getLocalName()
XMLStreamReadergetLocalName、インタフェースXMLStreamReaderpublic boolean hasName()
XMLStreamReaderhasName、インタフェースXMLStreamReaderpublic String getNamespaceURI()
XMLStreamReadergetNamespaceURI、インタフェースXMLStreamReaderpublic String getPrefix()
XMLStreamReadergetPrefix、インタフェースXMLStreamReaderpublic String getVersion()
XMLStreamReadergetVersion、インタフェースXMLStreamReaderpublic boolean isStandalone()
XMLStreamReaderisStandalone、インタフェースXMLStreamReaderpublic boolean standaloneSet()
XMLStreamReaderstandaloneSet、インタフェースXMLStreamReaderpublic String getCharacterEncodingScheme()
XMLStreamReadergetCharacterEncodingScheme、インタフェースXMLStreamReaderpublic String getPITarget()
XMLStreamReadergetPITarget、インタフェースXMLStreamReaderpublic String getPIData()
XMLStreamReadergetPIData、インタフェースXMLStreamReaderpublic Object getProperty(String name)
XMLStreamReadergetProperty、インタフェースXMLStreamReadername - プロパティの名前(null以外) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。