XMLView プログラム仕様
XMLファイルを読み込み、TkinterのGUIツリービューで表示するスクリプト。
- 概要:
このスクリプトは、指定されたXMLファイルの内容を読み込み、 それをグラフィカルユーザーインターフェース(GUI)のツリービュー形式で表示します。 ユーザーはXMLファイルの構造を視覚的に探索できます。
- 詳細説明:
コマンドライン引数またはTOML形式のINIファイルから、XMLファイルのパスとウィンドウサイズを読み込みます。
xml.etree.ElementTree モジュールを使用してXMLファイルを解析し、その構造を再帰的に走査します。
Tkinterとttk(themed Tkinter)を使用して、解析されたXML要素を階層的なTreeviewウィジェットに表示します。
ウィンドウを閉じる際に、現在のウィンドウのジオメトリをINIファイルに保存する機能を提供し、 次回の起動時に前回の設定を復元できるようにします。
- 使用方法:
python xml_viewer.py [XMLファイルパス] [ウィンドウサイズ (例: 800x600)]
- 関連リンク:
- class Viewer.XMLView.XMLViewer(root: Tk, infile: str, geometry: str = '800x600', tree_open: bool = True)[ソース]
ベースクラス:
objectXMLデータをTkinterのTreeviewウィジェットに表示するためのビューアクラス。
- 概要:
XMLファイルを読み込み、その内容をTkinterのTreeviewウィジェットに階層的に表示します。
- 詳細説明:
このクラスは、Tkinterのルートウィンドウを受け取り、XMLファイルのパスと初期ウィンドウサイズに基づいて、 Treeviewウィジェットを作成し、XML構造を解析して表示します。 XML要素はタグ、テキスト、属性に基づいてTreeviewノードとして追加されます。
- display_element(element: Element, item_id: str = '', level: int = 0)[ソース]
XML要素を再帰的にTkinterのTreeviewウィジェットに表示する。
- 概要:
指定されたXML要素のタグ、テキスト、属性をTreeviewのノードとして追加し、 子要素があればそれらも再帰的に表示します。
- 詳細説明:
ノードの表示テキストは、name 属性が存在すればそれを優先し、次に要素のテキスト、 最後にタグ名を使用します。 レベル1までのノードは初期状態で開き、それ以降のレベルは閉じられた状態で挿入されます。 各要素に対して、そのタグ、テキスト、属性が詳細として子ノードに追加されます。 属性はさらに個別のキーと値のペアとして表示されます。
- パラメータ:
element -- ET.Element - 表示するXML要素。
item_id -- str - 親となるTreeviewアイテムのID。ルート要素の場合は空文字列。
level -- int - 現在の要素の深さ(ネストレベル)。
- 戻り値:
None
- read_xml(infile: str)[ソース]
指定されたXMLファイルを解析し、Treeviewに表示するための準備を行う。
- 概要:
xml.etree.ElementTree を使用してXMLファイルを解析し、ルート要素を取得。 その後、display_element メソッドを呼び出してTreeviewに内容を再帰的に表示します。
- 詳細説明:
ファイルが存在しない場合やXML解析エラーが発生した場合は、 エラーメッセージをコンソールとTreeviewに表示し、アプリケーションを終了します。 正常に解析された場合、XMLのルート要素から表示を開始します。
- パラメータ:
infile -- str - 読み込むXMLファイルのパス。
- 戻り値:
None
- Viewer.XMLView.main()[ソース]
アプリケーションのエントリポイント。TkinterウィンドウとXMLViewerインスタンスを作成し、GUIイベントループを開始する。
- 概要:
XMLビューアアプリケーションを初期化し、実行します。
- 詳細説明:
Tkinterのルートウィンドウを初期化し、コマンドライン引数やINIファイルから取得した設定(XMLファイルパス、ウィンドウサイズ)に基づいて XMLViewer インスタンスを作成します。 ウィンドウが閉じられる際のプロトコルハンドラとして window_close 関数を設定し、 GUIイベントループを開始してアプリケーションをユーザー操作可能にします。
- 戻り値:
None
- Viewer.XMLView.window_close(root: Tk)[ソース]
ウィンドウが閉じられたときに呼び出され、現在のウィンドウのジオメトリをINIファイルに保存する。
- 概要:
Tkinterウィンドウが閉じられる際に実行され、現在のウィンドウのサイズと位置をTOML形式のINIファイルに保存します。
- 詳細説明:
この関数は、WM_DELETE_WINDOW プロトコルハンドラとして設定されます。 ウィンドウの現在のジオメトリ情報を取得し、inifile で指定されたパスにあるINIファイルに geometry キーとして書き込みます。その後、アプリケーションを終了します。
- パラメータ:
root -- tk.Tk - Tkinterのルートウィンドウオブジェクト。
- 戻り値:
None