使用python中的xml.dom删除具有特定元素名称的xml标记

时间:2016-06-09 06:32:42

标签: python xml dom

如何在python中使用xml.dom(不是lxml.etree)在xml代码中删除具有特定元素名称的标记。

e.g。如果我们有以下xml代码:

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
   <author>Gambardella, Matthew</author>
   <title>XML Developer's Guide</title>
   <genre>Computer</genre>
   <price>44.95</price>
   <publish_date>2000-10-01</publish_date>
   <description>An in-depth look at creating applications 
   with XML.</description>
   </book>
   <book id="bk102">
   <author>Ralls, Kim</author>
   <title>Midnight Rain</title>
   <genre>Fantasy</genre>
   <price>5.95</price>
   <publish_date>2000-12-16</publish_date>
   <description>A former architect battles corporate zombies, 
   an evil sorceress, and her own childhood to become queen 
   of the world.</description>
   </book>
   <book id="bk103">
  <author>Corets, Eva</author>
  <title>Maeve Ascendant</title>
  <genre>Fantasy</genre>
  <price>5.95</price>
  <publish_date>2000-11-17</publish_date>
  <description>After the collapse of a nanotechnology 
  society in England, the young survivors lay the 
  foundation for a new society.</description>
  </book>
  <book id="bk104">
  <author>Corets, Eva</author>
  <title>Oberon's Legacy</title>
  <genre>Fantasy</genre>
  <price>5.95</price>
  <publish_date>2001-03-10</publish_date>
  <description>In post-apocalypse England, the mysterious 
  agent known only as Oberon helps to create a new life 
  for the inhabitants of London. Sequel to Maeve 
  Ascendant.</description>
  </book>
</catalog>

如何在python中使用<title>删除名为xml.dom的所有标签?

1 个答案:

答案 0 :(得分:0)

title标记选择所有元素,然后使用removeChild

将其删除

更新

from xml.dom import minidom
xmldoc = minidom.parse("book_xml.xml")

nodes = xmldoc.getElementsByTagName("title")

for node in nodes:
    parent = node.parentNode
    parent.removeChild(node) 

print xmldoc.toxml()

您还可以通过以下方式将新更改写入xml文件:

with open("result.xml","w") as fs:
    fs.write(xmldoc.toxml())
    fs.close()