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)]

関連リンク:

XMLView.py 技術ドキュメント

class Viewer.XMLView.XMLViewer(root: Tk, infile: str, geometry: str = '800x600', tree_open: bool = True)[ソース]

ベースクラス: object

XMLデータを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