我使用以下方法解析 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 http://infohost.nmt.edu/tcc/help/pubs/pylxml/class-ElementTree.html#ElementTree-find
要向元素添加属性,请尝试如下操作:
root.attrib['myNewAttribute']='hello world'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)