XML_Edit3 プログラム仕様

class Viewer.XML_Edit3.XMLViewerEditor(root, file_path, window_size)[ソース]

ベースクラス: object

XMLファイルをGUIで表示し、編集機能を提供するクラスです。

Tkinterを使用してTreeviewウィジェットでXML構造を表示し、特定のテキスト値の編集、 およびその変更を新しいXMLファイルとして保存することを可能にします。

display_element(element, parent_id)[ソース]

XML要素を再帰的にTreeviewに挿入し表示します。

要素のタグとテキスト値を表示し、属性があればそれも表示します。 子要素があれば自身を再帰的に呼び出して、ツリー構造を構築します。

パラメータ:
戻り値:

None

戻り値の型:

None

edit_cell(event)[ソース]

Treeviewのセルをダブルクリックしたときに編集ダイアログを開きます。

イベントが発生した列が値の列('#1')である場合のみ、 現在のセルの値を取得し、編集ダイアログを表示します。

パラメータ:

event (tk.Event) -- Tkinterのイベントオブジェクト。

戻り値:

None

戻り値の型:

None

edit_dialog(item, current_value)[ソース]

セル値を編集するための独立したダイアログウィンドウを表示します。

現在の値を表示するEntryウィジェットと、変更を保存するボタンを含む Toplevelウィンドウを作成します。

パラメータ:
  • item (str) -- 編集対象のTreeviewアイテムのID。

  • current_value (str) -- 編集前の現在のセルの値。

戻り値:

None

戻り値の型:

None

load_xml(file_path)[ソース]

指定されたXMLファイルを読み込み、Treeviewに表示します。

xml.etree.ElementTreeモジュールを使用してファイルをパースし、 ルート要素を`self.root_element`に格納した後、`display_element`を呼び出してGUIに表示します。 パースエラーが発生した場合は、エラーメッセージをコンソールに出力します。

パラメータ:

file_path (str) -- 読み込むXMLファイルのパス。

戻り値:

None

戻り値の型:

None

save_cell_edit(item, new_value, edit_window)[ソース]

編集ダイアログでの変更をTreeviewに適用し、ダイアログを閉じます。

指定されたTreeviewアイテムの'Value'列を新しい値で更新し、 編集ウィンドウを破棄します。

パラメータ:
  • item (str) -- 値を更新するTreeviewアイテムのID。

  • new_value (str) -- 新しいセルの値。

  • edit_window (tk.Toplevel) -- 編集に使用されたToplevelウィンドウオブジェクト。

戻り値:

None

戻り値の型:

None

save_xml()[ソース]

Treeviewの現在の表示状態を基にXMLファイルを保存します。

Treeviewの表示内容を基に元のXMLツリーを更新(update_xml)し、 変更されたXMLを`edited.xml`というファイル名で保存します。 保存が完了すると、コンソールにメッセージを出力します。

戻り値:

None

戻り値の型:

None

update_xml(element, children)[ソース]

Treeviewの表示内容を基にXML要素を再帰的に更新します。

この関数は、Treeviewの各アイテムから値を取得し、 対応するXML要素のテキスト値を更新することを意図しています。 しかし、現在の実装では、`element.text`への代入が適切に行われず、 ツリー構造全体を正確に反映するようには機能しません。 特に、`element`が常に同じルート要素を指し、そのテキストだけが更新される形になっています。 (「既存のロジックは一切変更しない」ルールに基づき、このままDocstringを記述します。)

パラメータ:
  • element (xml.etree.ElementTree.Element) -- 更新対象のXML要素オブジェクト。

  • children (tuple) -- Treeviewの現在の`element`に対応する子アイテムのリスト。

戻り値:

None

戻り値の型:

None