我用XML解析XML
from lxml import etree
tree = etree.parse('test.xml', etree.XMLParser())
Run Code Online (Sandbox Code Playgroud)
现在我想处理解析的XML.我无法删除带有命名空间的元素或只删除一般元素,例如
<rdf:description><dc:title>Example</dc:title></rdf:description>
Run Code Online (Sandbox Code Playgroud)
我想删除整个元素以及标记内的所有内容.我还想为现有元素添加属性.我需要的方法是在Element类中,但我不知道如何在ElementTree这里使用对象.任何指针肯定会受到赞赏,谢谢
VMD*_*MDX 14
您可以通过此调用访问根元素: root=tree.getroot()
使用该根元素,您可以使用findall()和删除符合条件的元素:
deleteThese = root.findall("title")
for element in deleteThese: root.remove(element)
Run Code Online (Sandbox Code Playgroud)
最后,您可以通过以下方式查看新树的外观: etree.tostring(root, pretty_print=True)
下面是关于如何找到/的findall工作的一些信息: http://infohost.nmt.edu/tcc/help/pubs/pylxml/class-ElementTree.html#ElementTree-find
要向元素添加属性,请尝试以下操作:
root.attrib['myNewAttribute']='hello world'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18624 次 |
| 最近记录: |