Python 操作 DOM(待更)

Python013

Python 操作 DOM(待更),第1张

xml.etree.ElementTree 模块实现了一个简单高效的API,用于解析和创建XML数据。

XML是一种固有的分层数据格式,最自然的表示方法是使用树。 ET ( xml.etree.ElementTree ) 有两个类: ElementTree 将整个XML文档表示为一个树, Element 表示该树中的单个节点。与整个文档的交互(读写文件)通常在 ElementTree 级别完成。与单个XML元素及其子元素的交互是在 Element 级别完成的。

可以通过从文件中读取来导入此数据:

或直接从字符串中解析:

fromstring() 将XML从字符串直接解析为 Element ,该元素是已解析树的根元素。其他解析函数可能会创建一个 ElementTree 。更多信息请查阅文档。

作为 Element , root 具有标签和属性字典:

还有可以迭代的子节点:

子级是可以嵌套的,我们可以通过索引访问特定的子级节点:

Element 实例元素的长度是其子元素的数量。那意味着如果你要检查元素是否真的为空,则应同时检查它的长度和它的 text 属性。元素标签,属性名称和属性值可以是字节或字符串。

Element 是一个灵活的容器对象,旨在将分层数据结构存储在内存中。可以说是 list 和 dict 之间的交叉。每个元素都有许多与之关联的属性:

例如: <tag attrib>text<child/>...</tag>tail 。

要创建元素实例,请使用 Element 构造函数或 SubElement 工厂函数。您还可以使用 ElementTree 类包装元素结构,并将其与 XML 相互转换。

考虑到元素的可拓展性,最好使用 SubElement 工厂函数,来生成子元素。上面的子元素可以这样生成:

DOM介绍

(1)什么是DOM

·DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。

·DOM就是由节点组成的。

相关推荐:《Python教程》

(2)解析过程

·HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。然后操作的时候修改的是该元素的属性。

·DOM树(一切都是节点)

DOM的数据结构如下:

上图可知,在HTML当中,一切都是节点:(非常重要)

·元素节点:HMTL标签。

·文本节点:标签中的文字(比如标签之间的空格、换行)

·属性节点::标签的属性。

整个html文档就是一个文档节点。所有的节点都是Object。

(3)DOM可以做什么

·找对象(元素节点)

·设置元素的属性值

·设置元素的样式

·动态创建和删除元素

·事件的触发响应:事件源、事件、事件的驱动程序