如何用Python的ElementTree创建“虚拟根”?

5 投票
2 回答
1243 浏览
提问于 2025-04-15 12:37

我正在尝试使用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>

然后把这个字符串解析一下,就可以开始你的新文档了。

撰写回答