第6章 T2Xライブラリ
T2XコンバーターのようにテキストをXMLに変換する機能を自前のプログラムに組込んで利用することができます。このために当社ではT2Xクラスライブラリを有償で提供しています。このクラスライブラリは.NetFrameWork2.0以上の環境で、C#,VB,Delphi.NETなどの.NET対応のプログラムから利用することができます。このライブラリにはT2XパーサークラスとT2X例外クラスの2つのクラスが含まれています。
6.1 T2Xパーサークラス
T2XパーサークラスはテキストをXMLに変換するためのクラスです。
ライブラリファイル名 | T2X.dll |
名前空間 | T2X |
クラス | T2XParser |
T2Xパーサークラスには、変換規則を指定 AddConvertRule メソッドと、テキストをXMLに変換する Parse メソッドがあります。
コンストラクタ
T2Xパーサークラスの機能を利用するには、T2Xパーサークラスのインスタンスを生成し、T2Xパーサークラスのインスタンスメソッドを実行します。
構文
public T2XParser()
変換規則の追加メソッド
T2Xパーサーを用いてテキストからXMLに変換するには、T2Xパーサーに変換規則を登録しなければなりません。変換規則を登録するにはAddConvertRuleメソッドを使用して、T2Xスタジオで作られた変換規則ファイルを指定します。T2Xパーサーには複数の変換規則を登録することができます。複数の変換規則を登録する場合はAddConvertRuleメソッドを複数回使用します。AddConvertRuleメソッドの構文は次のとおりです。
構文
public void AddConvertRule(string fileName)
パラメータ
fileName | 変換規則ファイルの場所と名前を指定します。変換規則ファイルはT2Xスタジオで作られたものを使用します。 |
戻り値
なし
テキストXML変換メソッド
テキストをXMLに変換するにはParseメソッドを使用し、テキストを文字列として指定します。ParseメソッドでテキストよりXMLに変換された結果はXmlDocumentクラスのインスタンスとして返されます。XmlDocumentは.NET Framework のクラスです。XmlDocumentクラスのプロパティやメソッドを利用して、Xmlにアクセスしたり、Xmlファイルに出力することができます。
構文
public XmlDocument Parse(string inputString)
パラメータ
inputString | XMLに変換するテキストの文字列です。 |
戻り値
テキストより変換されたXmlDocument
パブリックプロパティ
public string AppliedRuleID | 変換に適用された変換規則の規則IDを取得します。 |
6.2 T2X例外クラス
T2Xパーサークラスで例外が発生するとT2XExceptionがスローされます。T2XExceptionクラスはExceptionクラスの派生クラスです。例外の詳細はT2XExceptionのMessageプロパティで確認できます。
ライブラリファイル名 | T2X.dll |
名前空間 | T2X |
クラス | T2XException |
パブリックプロパティ
public string Message | 現在の例外を説明するメッセージを取得します。 |
6.3 プログラムサンプル(C#編)
ここではテキストファイルをXMLファイルに変換する簡単なコンソールアプリケーションを作成します。プログラム名はT2XConvで引数に入力テキストファイル名、出力XMLファイル名、変換規則ファイル名を指定します。変換規則ファイル名は複数指定できるようにします。
C#プロジェクトの作成
VisualStudioを起動しC#コンソールアプリケーション用のプロジェクトを作成します。プロジェクト名はT2XConvとします。
参照の追加
T2X.dllの参照をプロジェクトに追加する必要があります。Visual Studio .NETではメニューの[プロジェクト]-[参照の追加]を実行して、T2X.dllを追加します。
変換処理の作成
メインルーチンでコマンドラインの引数を受取り、テキストからXMLに変換する処理を作成します。コマンド引数には入力テキストファイル名、出力XMLファイル名、変換規則ファイル名が順番に入ります。変換規則ファイル名は複数ありますので、コマンドライン引数の数は可変です。Program.csのMainメソッドに次のような処理を記述します。
static void Main(string[] args) { if (args.Length < 3) { // 使い方の説明 Console.Write("\nUsage:T2XConv 入力ファイル 出力ファイル 変換規則ファイル..."); } else { // T2XParserの生成 T2X.T2XParser t2xParser = new T2X.T2XParser(); // 変換ルールの設定 for (int i = 2; i < args.Length; i++) t2xParser.AddConvertRule(args[i]); // ファイルより入力テキストを読み込む string text = System.IO.File.ReadAllText(args[0], Encoding.GetEncoding("Shift_JIS")); // テキストよりXmlDocumentに変換 System.Xml.XmlDocument xmlDocument = t2xParser.Parse(text); // XmlDocumentをXMLファイルに出力 xmlDocument.Save(args[1]); } }