openGionopenGion
5.5.1.0

org.opengion.fukurou.xml
クラス XML2TableParser

java.lang.Object
  上位を拡張 org.xml.sax.helpers.DefaultHandler
      上位を拡張 org.opengion.fukurou.xml.XML2TableParser
すべての実装されたインタフェース:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class XML2TableParser
extends org.xml.sax.helpers.DefaultHandler

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のタグ名とマッチングする際は、大文字、小文字は区別せずにマッチングされます。

バージョン
4.0
作成者
Hiroki Nakamura
導入されたバージョン:
JDK5.0,

フィールドの概要
(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
 

フィールドの詳細

rowCpKey

java.lang.String rowCpKey

colCpKeys

java.lang.String colCpKeys

colCpIdxs

java.util.Map<java.lang.String,java.lang.Integer> colCpIdxs

rows

java.util.List<java.lang.String[]> rows

data

java.lang.String[] data

cols

java.lang.String[] cols

rtnCpKeys

java.lang.String rtnCpKeys

rtnKeyMap

java.util.Map<java.lang.String,java.lang.String> rtnKeyMap

rtnMap

java.util.Map<java.lang.String,java.lang.String> rtnMap

isInRow

boolean isInRow

curQName

java.lang.String curQName

curFQName

java.lang.String curFQName

pFullTagIdx

int pFullTagIdx

pTagIdx

int pTagIdx

curId

java.lang.String curId

idList

java.util.List<org.opengion.fukurou.xml.XML2TableParser.RowColId> idList

idMap

java.util.Map<java.lang.String,java.lang.String> idMap

input

final java.io.InputStream input
コンストラクタの詳細

XML2TableParser

public XML2TableParser(java.lang.String st)
XMLの文字列を指定してパーサーを形成します。

パラメータ:
st - XMLデータ(文字列)

XML2TableParser

public XML2TableParser(java.io.InputStream is)
ストリームを指定してパーサーを形成します。

パラメータ:
is - XMLデータ(ストリーム)
メソッドの詳細

setTableCols

public void setTableCols(java.lang.String rKey,
                         java.lang.String[] cKeys)
2次元配列データ(表データ)の取り出しを行うための行キーと項目キーを指定します。

パラメータ:
rKey - 行キー
cKeys - 項目キー
変更履歴:
5.1.6.0 (2010/05/01) rowKeyの親タグが取得できるように対応
5.1.9.0 (2010/08/01) 可変オブジェクトへの参照の直接セットをコピーに変更

setReturnCols

public void setReturnCols(java.lang.String[] rKeys)
属性データのマップの取り出しを行うための属性キーを指定します。

パラメータ:
rKeys - 属性キー

getCols

public java.lang.String[] getCols()
表データのヘッダーの項目名を配列で返します。

戻り値:
表データのヘッダーの項目名の配列
変更履歴:
5.1.9.0 (2010/08/01) 可変オブジェクトの参照返しをコピー返しに変更

getData

public java.lang.String[][] getData()
表データを2次元配列で返します。

戻り値:
表データの2次元配列

getRtn

public java.util.Map<java.lang.String,java.lang.String> getRtn()
属性データをマップ形式で返します。

戻り値:
属性データのマップ

parse

public void parse()
XMLのパースを実行します。


startElement

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
変更履歴:
5.1.6.0 (2010/05/01) rowKeyの親タグが取得できるように対応

characters

public void characters(char[] ch,
                       int offset,
                       int length)
テキストデータ読み込み時に行う処理を定義します。

定義:
インタフェース org.xml.sax.ContentHandler 内の characters
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の characters

endElement

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

endDocument

public void endDocument()
ドキュメント終了時に行う処理を定義します。

定義:
インタフェース org.xml.sax.ContentHandler 内の endDocument
オーバーライド:
クラス org.xml.sax.helpers.DefaultHandler 内の endDocument

openGion 5.5.1.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.