Xml#
v1.21.0で新たに追加
Xmlクラスは、HTMLまたはXMLノードを表します。これは、Story (ストーリー) オブジェクトのDOM(Document Object Model)コンテンツにアクセスするためのヘルパークラスです。
Xml オブジェクトを直接構築する必要はありません。Story (ストーリー) を作成した後、単に Story.body
を取得し(これはXmlノードです)、それを使用してストーリーのDOMを操作できます。
メソッド/属性 |
説明 |
---|---|
ul タグを追加します - 箇条書きリスト、コンテキストマネージャ。 |
|
pre タグを追加します、コンテキストマネージャ。 |
|
dl タグを追加します、コンテキストマネージャ。 |
|
div タグを追加します(「section」と名前変更)、コンテキストマネージャ。 |
|
headerタグ(h1 から h6 のいずれか)を追加します、コンテキストマネージャ。 |
|
hr タグを追加します。 |
|
img タグを追加します。 |
|
a タグを追加します。 |
|
ol タグを追加します、コンテキストマネージャ。 |
|
p タグを追加します。 |
|
span タグを追加します。コンテキストマネージャーです。 |
|
添字テキスト(sub タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
上付きテキスト(sup タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。 |
|
テキスト文字列を追加します。改行 |
|
子ノードを追加します。 |
|
このノードのコピーを作成します。 |
|
指定されたタグ名で新しいノードを作成します。 |
|
現在のノードに直接テキストを作成します。 |
|
指定されたプロパティを持つサブノードを検索します。 |
|
前回の「find」と同じ条件で繰り返します。 |
|
現在のノードの後に要素を挿入します。 |
|
現在のノードの前に要素を挿入します。 |
|
このノードを削除します。 |
|
CSS スタイル仕様を使用して配置を設定します。ブロックレベルのタグにのみ適用されます。 |
|
任意のキーに値(空である可能性があります)を設定します。 |
|
背景色を設定します。ブロックレベルのタグにのみ適用されます。 |
|
太字をオンまたはオフに設定するか、ある文字列の値に設定します。 |
|
テキストの色を設定します。 |
|
列数を設定します。引数は任意の有効な数値または文字列である必要があります。 |
|
フォントファミリーを設定します。例: "sans-serif"。 |
|
フォントサイズを設定します。浮動小数点数または有効なHTML/CSS文字列のいずれかです。 |
|
id を設定します。一意性のチェックが実行されます。 |
|
イタリック体をオンまたはオフ、または一部の文字列値に設定します。 |
|
インターブロックテキスト間の距離( |
|
行の高さを設定します。1.5のような浮動小数点数は、 |
|
マージンを設定します。浮動小数点数または最大4つの値を持つ文字列です。 |
|
このノードの後に改ページを挿入します。 |
|
このノードの前に改ページを挿入します。 |
|
1つの呼び出しで任意またはすべての所望のプロパティを設定します。 |
|
独自の |
|
"クラス" 属性を設定(追加)します。 |
|
最初のテキストブロック行のインデントを設定します。ブロックレベルのノードでのみ機能します。 |
|
HTMLタグ名(例: p)またはテキストノードの場合は |
|
ノードのテキストまたはテキストノードの場合は |
|
ノードがテキストかどうかを確認します。 |
|
このノードの1レベル下の最初のノードを含みます(または |
|
このノードの1レベル下の最後のノードを含みます(または |
|
同じレベルの次のノード(または |
|
同じレベルの前のノード。 |
|
DOMのトップノードで、したがって html というタグ名を持っています。 |
クラスAPI
- class Xml#
-
- add_header(value)#
ヘッダータグ(h1 から h6 のいずれか)を追加します。コンテキスト マネージャーです。詳細は 見出し を参照してください。
- パラメータ:
value (int) -- 値(1 - 6)。
- add_image(name, width=None, height=None)#
img タグを追加します。これにより、指定された名前の画像が DOM に含まれます。
- パラメータ:
name (str) -- 画像のファイル名。これは Story (ストーリー) コンストラクタの Archive (アーカイブ) パラメータのエントリの メンバー名である必要があります 。
width -- 提供された場合、絶対値(int)または「30%」などのパーセンテージ文字列。パーセンテージ値は
Story.place()
で指定されたwhere
の長方形の幅を指します。この値が提供され、height
が省略された場合、画像はアスペクト比を保持したまま含まれます。height -- 提供された場合、絶対値(int)または「30%」などのパーセンテージ文字列。パーセンテージ値は
Story.place()
で指定されたwhere
長方形の高さを指します。この値が提供され、width
が省略された場合、画像のアスペクト比が維持されます。
- add_link(href, text=None)#
a タグを追加します - インライン要素で、テキストのように扱われます。
- パラメータ:
href (str) -- URL の対象。
text (str) -- 表示するテキスト。省略した場合、
href
のテキストが代わりに表示されます。
- add_number_list()#
ol タグを追加します。コンテキストマネージャーです。
- add_paragraph()#
p タグを追加します。コンテキストマネージャーです。
- add_subscript(text)#
"subscript" テキスト(sub タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_superscript(text)#
"superscript" テキスト(sup タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_code(text)#
"code" テキスト(code タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_var(text)#
"variable" テキスト(var タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_samp(text)#
"sample output" テキスト(samp タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_kbd(text)#
"keyboard input" テキスト(kbd タグ)を追加します。テキストと同様に扱われるインライン要素です。
- add_text(text)#
テキスト文字列を追加します。改行
\n
は br タグとして認識されます。
- set_align(value)#
テキストの配置を設定します。ブロックレベルのタグにのみ対応しています。
- パラメータ:
value -- テキストの配置 または text-align のいずれかの値です。
- set_attribute(key, value=None)#
任意のキーに値(空である可能性があります)を設定します。
- パラメータ:
key (str) -- 属性の名前。
value (str) -- (オプションの) 属性の値。
- get_attributes()#
現在のノードのすべての属性を辞書として取得します。
- 戻り値:
ノードの属性とその値を含む辞書。
- get_attribute_value(key)#
key
ーの属性値を取得します。- パラメータ:
key (str) -- 属性の名前。
- 戻り値:
key
ーの値を含む文字列。
- remove_attribute(key)#
ノードから属性
key
を削除します。- パラメータ:
key (str) -- 属性の名前。
- set_bgcolor(value)#
背景色を設定します。ブロックレベルのタグにのみ適用されます。
- パラメータ:
value -- RGB値(例:(255, 0, 0)、"red"の場合)または有効な background-color 値。
- set_bold(value)#
太字をオンまたはオフに設定するか、ある文字列の値に設定します。
- パラメータ:
value --
True
、False
、または有効な font-weight 値。
- set_font(value)#
フォントファミリーを設定します。
- パラメータ:
value (str) -- 例:"sans-serif"など。
- set_id(unqid)#
id を設定します。これはDOM内でノードを一意に識別するためのもので、ノードを簡単に見つけて調査または変更するために使用します。一意性のチェックが実行されます。
- パラメータ:
unqid (str) -- ノードのID文字列。
- set_italic(value)#
後続するテキストのイタリックをオンまたはオフ、または一部の有効なフォントスタイル値に設定します。
- パラメータ:
value --
True
、False
、または有効な font-style 値。
- set_leading(value)#
インターブロックテキスト間の距離(
-mupdf-leading
)を設定します。ブロックレベルのノードでのみ機能します。- パラメータ:
value (float) -- 前のブロックからの距離(ポイント単位)。
- set_lineheight(value)#
行の高さを設定します。
- パラメータ:
value -- value – 1.5のような浮動小数点数(これは `1.5 * fontsize`に設定されます)または有効な行の高さの値。
- set_margins(value)#
マージン(マージン)を設定します。
- パラメータ:
value -- floatまたは最大4つの値を含む文字列。CSSのドキュメンテーション を参照してください。
- set_pagebreak_after()#
このノードの後に改ページを挿入します。
- set_pagebreak_before()#
このノードの前に改ページを挿入します。
- set_properties(align=None, bgcolor=None, bold=None, color=None, columns=None, font=None, fontsize=None, indent=None, italic=None, leading=None, lineheight=None, margins=None, pagebreak_after=False, pagebreak_before=False, unqid=None, cls=None)#
一度の呼び出しで任意またはすべての所望のプロパティを設定します。引数の値の意味は、対応する
set_
メソッドの値と同じです。注釈
このメソッドで設定されるプロパティは、直接ノードにアタッチされますが、
set_
メソッドごとに現在のノードの下に対応するプロパティを持つ新しい span が生成されます。したがって、本文のいくつかのプロパティを「グローバルに」設定するには、このメソッドを使用する必要があります。
- add_style(value)#
独自の
set_
メソッドでサポートされていないスタイル属性を設定(追加)します。- パラメータ:
value (str) -- 有効なCSSスタイル値。
- add_class(value)#
いくつかの「class」属性を設定(追加)します。
- パラメータ:
value (str) -- クラスの名前。DOMのHTMLまたはCSSソースで定義されている必要があります。
- set_text_indent(value)#
最初のテキストブロックの行のインデントを設定します。ブロックレベルのノードでのみ機能します。
- パラメータ:
value -- 有効な text-indent 値。負の値は機能しないことに注意してください。
- append_child(node)#
子ノードを追加します。これは、
Xml.add_paragraph()
などの他のメソッドで使用される低レベルのメソッドです。- パラメータ:
node -- 追加する Xml ノード。
- create_text_node(text)#
現在のノードに直接テキストを作成します。
- パラメータ:
text (str) -- 追加するテキスト。
- 戻り値の型:
- 戻り値:
作成された要素。
- create_element(tag)#
指定されたタグで新しいノードを作成します。これは、
Xml.add_paragraph()
などの他のメソッドで使用される低レベルなメソッドです。- パラメータ:
tag (str) -- 要素のタグ。
- 戻り値の型:
- 戻り値:
作成された要素。実際にDOMにバインドするには、
Xml.append_child()
を使用します。
- clone()#
このノードのコピーを作成し、それをこのDOMに追加(
Xml.append_child()
を使用)または挿入(Xml.insert_before()
、Xml.insert_after()
のいずれかを使用)できるようにします。- 戻り値:
現在のノードのクローン(Xml)。
- remove()#
このノードをDOMから削除します。
- debug()#
デバッグ目的で、このノードの構造を簡略化された形式で表示します。
- find(tag, att, match)#
現在のノードの下で、指定された
tag
、属性att
、値match
を持つ最初のノードを検索します。- パラメータ:
tag (str) -- このタグに制限して検索します。無制限の検索の場合は
None
にできます。att (str) -- この属性を確認します。
None
にできます。match (str) -- 致する属性値を指定します。
None
にできます。
- 戻り値の型:
Xml.
- 戻り値:
何も見つからない場合は
None
、それ以外の場合は最初の一致するノード。
- find_next(tag, att, match)#
Continue a previous
Xml.find()
(orfind_next()
) with the same values.- 戻り値の型:
Xml.
- 戻り値:
それ以上見つからない場合は
None
、それ以外の場合は次の一致するノード。
- tagname#
HTMLタグ名(例: p)またはテキストノードの場合は
None
。
- text#
ノードのテキストまたはテキストノードの場合は
None
。
- is_text#
テキストノードであるかどうかを確認します。
- first_child#
このノードの1レベル下の最初のノードを含みます(または
None
)。
- last_child#
このノードの1レベル下の最後のノードを含みます(または
None
)。
- next#
同じレベルの次のノード(または
None
)。
- previous#
同じレベルの前のノード。
- root#
DOMのトップノードで、したがって html というタグ名を持っています。
テキストのプロパティを設定する#
HTMLでは、タグはネストされることがあり、最も内側のテキストは親タグに囲まれたタグから プロパティを継承します 。たとえば、<p>
。
同じ効果を得るために、Xml.set_bold()
や Xml.set_italic()
などのメソッドは、各々所望のプロパティを持つ一時的な span を現在のノードの下に追加します。
さらに、これらのメソッドは親ノードを返すため、それらを連結することができます。
コンテキストマネージャのサポート#
DOMにノードを追加する標準的な方法は次のとおりです:
body = story.body
para = body.add_paragraph() # add a paragraph
para.set_bold() # text that follows will be bold
para.add_text("some bold text")
para.set_italic() # text that follows will additionally be italic
para.add_txt("this is bold and italic")
para.set_italic(False).set_bold(False) # all following text will be regular
para.add_text("regular text")
コンテキストマネージャとしてフラグが付いているメソッドは、次のように便利に使用できます:
body = story.body
with body.add_paragraph() as para:
para.set_bold().add_text("some bold text")
para.set_italic().add_text("this is bold and italic")
para.set_italic(False).set_bold(False).add_text("regular text")
para.add_text("more regular text")