Python查找属性并删除父级和子级

时间:2014-04-09 08:43:01

标签: python xml xpath

我想使用查找属性来删除特定的xml元素。

这是我的xml文件示例

<domain type='kvm'>
  <name>ptest</name>
  <uuid>6119613e-4ba6-4be9-a1a2-9a33ca293341</uuid>
  <description>Ubuntu 12.04.3 LTS</description>
  <devices>
    <emulator>/usr/bin/kvm-spice</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/ptest.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/iso/ubuntu-12.04.3-server-amd64.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/iso/freebsd-amd64.iso'/>
      <target dev='hdd' bus='ide'/>
      <readonly/>
    </disk>
  <devices>
</domain>

现在我想使用其属性source ='/ home / iso / ubuntu-12.04.3-server-amd64.iso'

删除磁盘块

请你帮我解决这个问题。

欧麦尔

1 个答案:

答案 0 :(得分:0)

假设您已经知道如何在python中使用XPath - 因为我没有 - ,您可以尝试使用以下XPath来获取此问题中描述的<disk>元素:

//disk[source/@file='/home/iso/freebsd-amd64.iso']

这基本上选择了具有属性<disk>值等于<source>的子file元素的所有'/home/iso/freebsd-amd64.iso'元素。