如何用Python的ElementTree创建“虚拟根”?
我正在尝试使用Python的ElementTree来生成一个XHTML文件。
不过,ElementTree.Element()这个方法只能让我创建一个单独的标签(比如HTML标签)。我需要创建一个类似虚拟根节点的东西,这样我才能放置各种标签、文档类型等。
我该怎么做呢?谢谢!
2 个回答
1
我也遇到过同样的问题。当我解析一个文档并把它写回去的时候,文档类型定义就不见了。我在查阅文档时找到了解决办法:
保存HTML文件 #
要保存一个普通的HTML文件,只需把树结构写出来。
tree.write("outfile.htm")
这样做效果很好,只要文件里没有嵌入的SCRIPT或STYLE标签。
如果你想的话,可以在文件的开头添加一个DTD引用:
file = open("outfile.htm", "wb")
file.write(DTD + "\n")
tree.write(file)
file.close()
7
我不知道有没有更好的方法,但我见过这样做:
首先,把基础文档创建成一个字符串:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html></html>
然后把这个字符串解析一下,就可以开始你的新文档了。