|
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.xml.sax.helpers.DefaultHandler
org.opengion.fukurou.xml.XML2TableParser
public class XML2TableParser
XML2TableParser は、XMLを表形式に変換するためのXMLパーサーです。
XMLのパースには、SAXを採用しています。
このクラスでは、XMLデータを分解し、2次元配列の表データ、及び、指定されたキーに対応する
属性データのマップを生成します。
これらの配列を生成するためには、以下のパラメータを指定する必要があります。
①2次元配列データ(表データ)の取り出し
行のキー(タグ名)と、項目のキー一覧(タグ名)を指定することで、表データを取り出します。
具体的には、行キーのタグセットを"行"とみなし、その中に含まれる項目キーをその列の"値"と
して分解されます。(行キーがN回出現すれば、N行が生成されます。)
もし、行キーの外で、項目キーのタグが出現した場合、その項目キーのタグは無視されます。
また、colKeysにPARENT_TAG、PARENT_FULL_TAGを指定することで、rowKeyで指定されたタグの
直近の親タグ、及びフルの親タグ名(親タグの階層を">[タグA]>[タグB]>[タグC]>"で表現)を
取得することができます。
行キー及び項目キーは、setTableCols(String, String[])
で指定します。
②属性データのマップの取り出し
属性キー(タグ名)を指定することで、そのタグ名に対応した値をマップとして生成します。
同じタグ名が複数回にわたって出現した場合、値はアペンドされます。
属性キーは、setReturnCols(String[])
で指定します。
※それぞれのキー指定は、大文字、小文字を区別した形で指定することができます。
但し、XMLのタグ名とマッチングする際は、大文字、小文字は区別せずにマッチングされます。
フィールドの概要 | |
---|---|
(package private) java.util.Map<java.lang.String,java.lang.Integer> |
colCpIdxs
|
(package private) java.lang.String |
colCpKeys
|
(package private) java.lang.String[] |
cols
|
(package private) java.lang.String |
curFQName
|
(package private) java.lang.String |
curId
|
(package private) java.lang.String |
curQName
|
(package private) java.lang.String[] |
data
|
(package private) java.util.List<org.opengion.fukurou.xml.XML2TableParser.RowColId> |
idList
|
(package private) java.util.Map<java.lang.String,java.lang.String> |
idMap
|
(package private) java.io.InputStream |
input
|
(package private) boolean |
isInRow
|
(package private) int |
pFullTagIdx
|
(package private) int |
pTagIdx
|
(package private) java.lang.String |
rowCpKey
|
(package private) java.util.List<java.lang.String[]> |
rows
|
(package private) java.lang.String |
rtnCpKeys
|
(package private) java.util.Map<java.lang.String,java.lang.String> |
rtnKeyMap
|
(package private) java.util.Map<java.lang.String,java.lang.String> |
rtnMap
|
コンストラクタの概要 | |
---|---|
XML2TableParser(java.io.InputStream is)
ストリームを指定してパーサーを形成します。 |
|
XML2TableParser(java.lang.String st)
XMLの文字列を指定してパーサーを形成します。 |
メソッドの概要 | |
---|---|
void |
characters(char[] ch,
int offset,
int length)
テキストデータ読み込み時に行う処理を定義します。 |
void |
endDocument()
ドキュメント終了時に行う処理を定義します。 |
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
要素の終了タグ読み込み時に行う処理を定義します。 |
java.lang.String[] |
getCols()
表データのヘッダーの項目名を配列で返します。 |
java.lang.String[][] |
getData()
表データを2次元配列で返します。 |
java.util.Map<java.lang.String,java.lang.String> |
getRtn()
属性データをマップ形式で返します。 |
void |
parse()
XMLのパースを実行します。 |
void |
setReturnCols(java.lang.String[] rKeys)
属性データのマップの取り出しを行うための属性キーを指定します。 |
void |
setTableCols(java.lang.String rKey,
java.lang.String[] cKeys)
2次元配列データ(表データ)の取り出しを行うための行キーと項目キーを指定します。 |
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attributes)
要素の開始タグ読み込み時に行う処理を定義します。 |
クラス org.xml.sax.helpers.DefaultHandler から継承されたメソッド |
---|
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
java.lang.String rowCpKey
java.lang.String colCpKeys
java.util.Map<java.lang.String,java.lang.Integer> colCpIdxs
java.util.List<java.lang.String[]> rows
java.lang.String[] data
java.lang.String[] cols
java.lang.String rtnCpKeys
java.util.Map<java.lang.String,java.lang.String> rtnKeyMap
java.util.Map<java.lang.String,java.lang.String> rtnMap
boolean isInRow
java.lang.String curQName
java.lang.String curFQName
int pFullTagIdx
int pTagIdx
java.lang.String curId
java.util.List<org.opengion.fukurou.xml.XML2TableParser.RowColId> idList
java.util.Map<java.lang.String,java.lang.String> idMap
final java.io.InputStream input
コンストラクタの詳細 |
---|
public XML2TableParser(java.lang.String st)
st
- XMLデータ(文字列)public XML2TableParser(java.io.InputStream is)
is
- XMLデータ(ストリーム)メソッドの詳細 |
---|
public void setTableCols(java.lang.String rKey, java.lang.String[] cKeys)
rKey
- 行キーcKeys
- 項目キー5.1.6.0 (2010/05/01) rowKeyの親タグが取得できるように対応 |
5.1.9.0 (2010/08/01) 可変オブジェクトへの参照の直接セットをコピーに変更 |
public void setReturnCols(java.lang.String[] rKeys)
rKeys
- 属性キーpublic java.lang.String[] getCols()
5.1.9.0 (2010/08/01) 可変オブジェクトの参照返しをコピー返しに変更 |
public java.lang.String[][] getData()
public java.util.Map<java.lang.String,java.lang.String> getRtn()
public void parse()
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
org.xml.sax.ContentHandler
内の startElement
org.xml.sax.helpers.DefaultHandler
内の startElement
uri
- 名前空間URI。要素が名前空間 URIを持たない場合、または名前空間処理が行われない場合は空文字列localName
- 接頭辞を含まないローカル名。名前空間処理が行われない場合は空文字列qName
- 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列attributes
- 要素に付加された属性。属性が存在しない場合、空の Attributesオブジェクト5.1.6.0 (2010/05/01) rowKeyの親タグが取得できるように対応 |
public void characters(char[] ch, int offset, int length)
org.xml.sax.ContentHandler
内の characters
org.xml.sax.helpers.DefaultHandler
内の characters
ch
- 文字データ配列offset
- 文字配列内の開始位置length
- 文字配列から使用される文字数public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
org.xml.sax.ContentHandler
内の endElement
org.xml.sax.helpers.DefaultHandler
内の endElement
uri
- 名前空間 URI。要素が名前空間 URI を持たない場合、または名前空間処理が行われない場合は空文字列localName
- 接頭辞を含まないローカル名。名前空間処理が行われない場合は空文字列qName
- 接頭辞を持つ修飾名。修飾名を使用できない場合は空文字列public void endDocument()
org.xml.sax.ContentHandler
内の endDocument
org.xml.sax.helpers.DefaultHandler
内の endDocument
|
openGion 5.6.1.0 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |