python - 使用 lxml 向现有元素添加属性、删除元素等

标签 python xml lxml

我使用 XML 解析

from lxml import etree

tree = etree.parse('test.xml', etree.XMLParser())

现在我想处理已解析的 XML。我在删除带有命名空间的元素或一般情况下删除元素时遇到问题,例如

<rdf:description><dc:title>Example</dc:title></rdf:description>

我想删除整个元素以及标签中的所有内容。我也想为现有元素添加属性。我需要的方法在 Element 类中,但我不知道如何在此处将其与 ElementTree 对象一起使用。任何指针都将不胜感激,谢谢

最佳答案

您可以通过以下调用获取根元素:root=tree.getroot()

使用该根元素,您可以使用 findall() 并删除符合您条件的元素:

deleteThese = root.findall("title")
for element in deleteThese: root.remove(element)

最后,您可以通过以下方式查看新树的外观:etree.tostring(root, pretty_print=True)

这里是一些关于 find/findall 如何工作的信息: http://infohost.nmt.edu/tcc/help/pubs/pylxml/class-ElementTree.html#ElementTree-find

要向元素添加属性,请尝试如下操作:

root.attrib['myNewAttribute']='hello world'

关于python - 使用 lxml 向现有元素添加属性、删除元素等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232618/

相关文章:

python 或 pyqt - 检查鼠标按钮的点击状态

python - 当行的 html 标签未嵌套在 header 标签下时,抓取表头下方的信息行

Python:输入信息后从网络上抓取数据

python - 如何在 Python 中隐藏 turtle 图标/指针

python - 如果满足 m 个条件中的任何 n 个,则为 Pandas

python - 如何将大 CSV 文件导入 python 中的 Sqlite3?

python - 使用 lxml 和请求解析 HTML 列表的问题

java - 在 Java 中从 PostgreSQL 检索 xml 数组

c# - 将参数作为 Xml 传递给存储过程

android - 读取和写入 XML 文件