tkHTMLDocument プログラム仕様

HTML要素の構築と操作を補助するモジュール。

このモジュールは、HTMLのタグ、属性、コンテンツ、子要素をプログラム的に管理し、 HTML文字列を生成するためのクラスを提供します。 tkHTMLElement クラスは個々のHTML要素を表し、その属性や子要素を操作できます。 tkHTMLDocument クラスは、これらの要素を生成し、より複雑なHTML構造(例: テーブル)を 簡単に構築するためのファクトリメソッドを提供します。

関連リンク:

tkHTMLDocument.py ライブラリ技術ドキュメント

class tklib.tkcgi.tkHTMLDocument.TableStructure(document: tkHTMLDocument = None)[ソース]

ベースクラス: object

HTMLテーブル構造を簡素化して構築するためのヘルパークラス。

HTMLテーブルの <table>, <thead>, <tbody>, <tr>, <th>, <td> 要素を管理し、 ヘッダーや行データを簡単に追加できるインターフェースを提供します。

add_header(headers: list[str])[ソース]

テーブルのヘッダー行にヘッダーセルを追加します。

パラメータ:

headers -- list[str]: 各ヘッダーセルのテキストコンテンツのリスト。

戻り値:

None

add_row(row_data: list[str])[ソース]

テーブルのボディに行データセルを追加します。

パラメータ:

row_data -- list[str]: 行の各データセルのテキストコンテンツのリスト。

戻り値:

None

class tklib.tkcgi.tkHTMLDocument.tkHTMLDocument[ソース]

ベースクラス: object

HTMLドキュメント全体の管理と要素生成のためのファクトリクラス。

個々のHTML要素を生成し、より複雑なHTML構造(例: テーブル)を構築するための 便利なメソッドを提供します。

create_element(tag: str, content: str = '', attributes: dict = None, escape: bool = True) tkHTMLElement[ソース]

指定されたタグ、コンテンツ、属性を持つ新しいtkHTMLElementインスタンスを生成します。

このメソッドは、tkHTMLElement のコンストラクタをラップし、 tkHTMLDocument インスタンスから直接要素を生成できるようにします。

パラメータ:
  • tag -- str: HTML要素のタグ名。

  • content -- str: 要素のテキストコンテンツ。デフォルトは空文字列。

  • attributes -- dict | None: 要素の属性をキーと値の辞書で指定します。デフォルトはNone。

  • escape -- bool: コンテンツと属性値をHTMLエスケープするかどうかを決定します。 デフォルトはTrue。

戻り値:

tkHTMLElement: 新しく生成されたtkHTMLElementのインスタンス。

create_table(attributes: dict = {'border': '1'}, header: list[str] = [], data_list: list[list[str]] = []) tuple[tkHTMLElement, tkHTMLElement, tkHTMLElement, tkHTMLElement][ソース]

HTMLテーブルを生成し、ヘッダーとデータ行を追加します。

このメソッドは、<table>, <thead>, <tr>, <th>, <tbody>, <td> 要素を 自動的に構築し、指定されたヘッダーとデータでテーブルを初期化します。

パラメータ:
  • attributes -- dict: テーブル要素に適用する属性の辞書。デフォルトは{"border": "1"}。

  • header -- list[str]: テーブルのヘッダーテキストのリスト。

  • data_list -- list[list[str]]: テーブルの各行データを含むリストのリスト。

戻り値:

tuple[tkHTMLElement, tkHTMLElement, tkHTMLElement, tkHTMLElement]: 生成されたテーブル、thead、tr_head、tbody要素のタプル。

class tklib.tkcgi.tkHTMLDocument.tkHTMLElement(tag: str, content: str = '', attributes: dict = None, escape: bool = True)[ソース]

ベースクラス: object

単一のHTML要素を表すクラス。

タグ名、コンテンツ、属性、子要素を管理し、それらからHTML文字列を構築します。 コンテンツのエスケープ処理も行います。

append_child(*child_elements: tkHTMLElement)[ソース]

指定された子要素を現在の要素に追加します。

複数の子要素を一度に追加できます。

パラメータ:

child_elements -- tkHTMLElement: 追加する一つ以上のtkHTMLElementインスタンス。

戻り値:

None

build_element() str[ソース]

現在のHTML要素の完全なHTML文字列を構築して返します。

属性の整形、空要素の処理、子要素のインデント、コンテンツの配置など、 要素の構造とコンテンツに基づいて適切なHTMLを生成します。

戻り値:

str: 構築されたHTML要素の文字列表現。

property contentText: str

要素のテキストコンテンツを取得します。

このプロパティは、HTMLエスケープされた生テキストコンテンツを返します。 setterを使用すると、新しいテキストコンテンツを設定できます。

戻り値:

str: 現在の要素のテキストコンテンツ。

classmethod create_element(tag: str, content: str = '', attributes: dict = None, escape: bool = True) tkHTMLElement[ソース]

HTML要素の新しいインスタンスを生成します。

このクラスメソッドは、指定されたタグ、コンテンツ、属性を持つHTML要素を 簡単に作成するためのファクトリとして機能します。

パラメータ:
  • tag -- str: HTML要素のタグ名。

  • content -- str: 要素のテキストコンテンツ。デフォルトは空文字列。

  • attributes -- dict | None: 要素の属性をキーと値の辞書で指定します。デフォルトはNone。

  • escape -- bool: コンテンツをHTMLエスケープするかどうか。デフォルトはTrue。

戻り値:

tkHTMLElement: 新しく生成されたtkHTMLElementのインスタンス。

property innerHTML: str

現在の要素の子要素を含むHTMLコンテンツを構築して返します。

要素自身のコンテンツと、すべての子要素が構築されたHTML文字列を結合します。 子要素はインデントされて整形されます。

戻り値:

str: 要素の内部HTML表現(子要素を含む)。

property outerHTML: str

要素全体のHTML表現を構築して返します。

これは build_element() メソッドのラッパーです。

戻り値:

str: 要素とその子要素すべてを含む完全なHTML文字列。

property textContent: str

要素とそのすべての子要素からテキストコンテンツを再帰的に収集し、結合して返します。

各要素のコンテンツは改行で区切られます。 HTMLタグは含まれません。

戻り値:

str: 要素ツリー全体の結合されたテキストコンテンツ。