2009-07-01 18 views
5

私はPythonのElementTreeを使ってXHTMLファイルを生成しようとしています。PythonのElementTreeで「仮想ルート」を作成する方法は?

ただし、ElementTree.Element()では単一のタグ(HTMLなど)を作成できます。 さまざまなDOCTYPESなどを配置できるように、何らかの仮想ルートを作成する必要があります。

どうすればよいですか?もっと良い方法があるかどうかはわからないが、私はこれが行わ見てきました おかげ

答えて

7

は、文字列として基本文書を作成します。次に

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html></html> 

あなたを開始するには、その文字列を解析します新しい文書。

+2

1は、ElementTreeのはDOCTYPEを作成/追加することはできません、確認したので、この解決策はありますそれがきれいになる。 –

0

私は同じ問題を抱えています。私が文書を解析し、それをもう一度書き戻すと、doctype defenitionはもう存在しません。ただ木を書き出す、プレーンなHTMLファイルを保存するには

link text

保存するHTMLファイル#

:しかし、私は、ドキュメントを閲覧する解決策を見つけました。

tree.write("outfile.htm") 

ファイルが埋め込みSCRIPTタグまたはSTYLEタグを含んでいない限り、これはうまく動作します。

したい場合は、ファイルの先頭にDTDの参照を追加することができます(!しかし、それを解析することができます)

file = open("outfile.htm", "w") 
file.write(DTD + "\n") 
tree.write(file) 
file.close() 
関連する問題