2009-07-01 33 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中不能添加/创建文档类型,所以这种解决方案(但可以解析吧!)尽可能干净。 – 2009-07-01 19:23:47

0

我有/有同样的问题。当我解析一个文件并再次写回来时,文档类型defenition就不存在了。但我发现了一个解决方案浏览文档:

link text

保存HTML文件#

要保存一个纯HTML文件,只写了出来。

tree.write("outfile.htm") 

只要文件没有包含任何嵌入的SCRIPT或STYLE标签,就可以很好地工作。

如果你愿意,你可以添加一个DTD参考文件的开头:

file = open("outfile.htm", "w") 
file.write(DTD + "\n") 
tree.write(file) 
file.close()