一、lxml 的安装

pip install lxml

二、使用 lxml 构建节点

from lxml import etree
if __name__ == '__main__':# Element 用于构建 xml 文档结构的节点,root = etree.Element("root")# 查看类型print(type(root))# 将 Element 对象转换成字符串进行输出print(etree.tostring(root))
lxml 的绝大多数功能都集中到了 etree 子模块中,在使用的时候需要导入。

三、添加 Element 节点中的属性和内容

from lxml import etree
if __name__ == '__main__':# Element 用于构建 xml 文档结构的节点,root = etree.Element("root")# 查看类型print(type(root))# 将 Element 对象转换成字符串进行输出print(etree.tostring(root))# 添加节点的文本内容root.text = "abc"print(etree.tostring(root))# 向节点中添加属性root.set("class", "active")print(etree.tostring(root))

执行结果

<class 'lxml.etree._Element'>

b'<root/>'

b'<root>abc</root>'

b'<root class="active">abc</root>'

四、使用 lxml 构建带有属性的节点

from lxml import etree
if __name__ == '__main__':# Element 构造函数的第一个参数是标签名称,第二个参数的类型是字典类型,代表的是插入的属性。child1 = etree.Element("child1", {"style":"font-size:18px"})print(etree.tostring(child1))child1 = etree.Element("child1", {"style":"font-size:18px", "class":"deactive"})print(etree.tostring(child1))

五、修改标签名称

from lxml import etree
if __name__ == '__main__':child1 = etree.Element("child1", {"style":"font-size:18px", "class":"deactive"})print(etree.tostring(child1))child1.tag = "child"print(etree.tostring(child1))

执行结果:

b'<child1 style="font-size:18px" class="deactive"/>'

b'<child style="font-size:18px" class="deactive"/>'

六、元素和标签的区别

个人理解:在很多地方,两个代表的意思是相同的。但是真实情况是 元素 = 标签 + 属性

七、向节点中插入子节点

# 向节点中插入子节点
from lxml import etree
if __name__ == '__main__':tree = etree.Element("root")# 方式1,先创建一个节点,然后使用 append 追加child1 = etree.Element("child1")tree.append(child1)print(etree.tostring(tree))# 方式2、使用etree.SubElement 插入etree.SubElement(tree, "child2")print(etree.tostring(tree))

执行结果

b'<root><child1/></root>'

b'<root><child1/><child2/></root>'

八、练习1

利用lxml 库相关的函数构造如下形式的元素

<root>

<child1/>

<child2/>

<child3/>

</root>

from lxml.etree import Element
from lxml.etree import tostring
from lxml.etree import SubElement
if __name__ == '__main__':root = Element("root")child1 = Element("child1")child2 = Element("child2")child3 = Element("child3")root.append(child1)root.append(child2)root.append(child3)print(tostring(root))
from lxml.etree import Element
from lxml.etree import tostring
from lxml.etree import SubElement
if __name__ == '__main__':root = Element("root")SubElement(root, "child1")SubElement(root, "child2")SubElement(root, "child3")print(tostring(root))

九、练习2

利用lxml 库相关的函数构造如下形式的元素

<root>

<child1 class="a">a</>

<child2 class="b">b</>

<child3 class="c">c</>

</root>

from lxml.etree import Element
from lxml.etree import tostring
from lxml.etree import SubElement
if __name__ == '__main__':root = Element("root")child1 = Element("child1", {"class":"a"})child1.text = "a"child2 = Element("child2", {"class": "b"})child2.text = "b"child3 = Element("child3", {"class": "c"})child3.text = "c"root.append(child1)root.append(child2)root.append(child3)print(tostring(root))
from lxml.etree import Element
from lxml.etree import tostring
from lxml.etree import SubElement
if __name__ == '__main__':root = Element("root")child1 = Element("child1")child1.text = "a"child1.set("class", "a")child2 = Element("child2")child2.text = "b"child2.set("class", "b")child3 = Element("child3")child3.text = "c"child3.set("class", "c")root.append(child1)root.append(child2)root.append(child3)print(tostring(root))

使用 lxml 构建 XML 文档相关推荐

  1. C#来创建和读取XML文档 [转]

    C#来创建和读取XML文档  [关键词]:XML 录入:小鱼之家 来源:http://fisher.xundain.com 时间:2005-3-3 23:41:54 点击:85次 扩展标记语言XML( ...

  2. C#来创建和读取XML文档

    扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的.做为用于替代HTML语言的一种新型的标记语言, XML内部有着很多基本标准,XML就是通过与这些相关标 ...

  3. python 打印xml文档树_Python构建XML树结构的方法示例

    本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...

  4. 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.7.5 使用StAX写出XML文档

    3.7.5 使用StAX写出XML文档 在前一节中,你看到了如何通过写出DOM树的方法来产生XML文件.如果这个DOM树没有其他任何用途,那么这种方式就不是很高效. StAX API使我们可以直接将X ...

  5. Java用Xom生成XML文档

    这个总结源于Java编程思想第四版18.13节的案例: 完整代码地址: Java编程思想:XML 相关Api地址: Attribute Element Document Serializer 由于案例 ...

  6. [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档

    [Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档 楼主  发表于 2013-5-21 22:00:51 | 查看: 475| 回复: 0 使用DOM创建和操作XML文档 版权声明 该 ...

  7. [Qt教程] 第27篇 XML(一)使用DOM读取XML文档

    [Qt教程] 第27篇 XML(一)使用DOM读取XML文档 楼主  发表于 2013-5-21 21:14:28 | 查看: 1001| 回复: 14 使用DOM读取XML文档 版权声明 该文章原创 ...

  8. (五)DTD验证XML文档

    一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文 ...

  9. XML——写出XML文档(XSLT+StAX)

    [0]README 0.1) 本文描述部分转自 core java volume 2 , 旨在理解 XML--写出XML文档(XSLT+StAX) 的基础知识 : 0.2) for source co ...

最新文章

  1. arch模型的思路_ARCH模型
  2. 分治算法-02凸包问题
  3. linux命令---tar
  4. 计算机系统中的总线,计算机系统中的总线控制器及其方法
  5. 这7本O’Reilly推出的免费Python电子书,够你看了
  6. sqlserver的for xml path和mysql的group_concat的区别
  7. jmeter的脚本录制3
  8. pyautogui 语法记录+休闲辅助工具实现-2021.12.15
  9. 详解会员积分营销系统的作用
  10. 计算机导论论文对课程的思考,计算机导论课浅析论文
  11. 编译原理 —— 什么是语法分析
  12. #R语言# 生成随机数
  13. “68 道 Redis+168 道 MySQL”精品面试题(带解析),你背废了吗?
  14. 蓝牙BLEBLEcc2540开启广播的过程
  15. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】
  16. 人工智能( AI )将如何颠覆项目管理?看看这六大关键领域
  17. oracle user does not exist,user 'scott' does not exist! 又学了一招
  18. Google Analytics(分析)如何计算访问次数
  19. MSP430G2553学习
  20. 线上 mysql连接超时_线上环境数据库连接超时原因

热门文章

  1. 目前市面上的固码有哪些品牌
  2. 卡尔曼滤波通俗易懂的解释
  3. 申请美国计算机科学,美国计算机科学申请须知
  4. 基于51单片机的多功能时钟温度计proteus仿真原理图
  5. 防止Web攻击,做好HTTP安全标头
  6. 危机边缘第五季/全集Fringe迅雷下载
  7. 3dsmax的模型优化技巧
  8. 【Unity】Unity3D快捷键
  9. 马斯克晒SpaceX星际飞船概念图,运载能力达250吨,要飞往另一个恒星系统
  10. 技术-正则表达式 处理读书器的章、节、回问题