Python 处理 XML

    由于工作需要,最近需要用Python来处理一些XML文件。所以要学习一些python中处理xml的modules。后面逐步学习、充实该部分内容。

 

1. xml.etree.ElementTree module

 

两种方法去读取并解析XML文件

 

1)

    import xml.etree.ElementTree as ET

    tree = ET.parse('sample.xml')

    root = tree.getroot()

2)

    f = open('sample.xml','r')

    xml = f.read()

    root = ET.fromstring(xml)

    folder_nodes = root.getiterator('FOLDER')

    folder_node = folder_nodes[0]

    folder_node.keys() # Show list of the Element keys

    folder_node.items() # Show tuple of the Element

    folder_node.attrib['NAME'] # Show value of attribute 'NAME'

    folder_node.set('NAME','TEST_SET') # Set or change value for the attribute 'NAME'

 

将修改的东西写回xml文件

 

    tree.write('sample.xml')

 

tree  是一个xml.etree.ElementTree.ElementTree instance。有如下方法:

 

class ElementTree
 |  Methods defined here:
 |  
 |  __init__(self, element=None, file=None)
 |  
 |  find(self, path)
 |  
 |  findall(self, path)
 |  
 |  findtext(self, path, default=None)
 |  
 |  getiterator(self, tag=None)
 |  
 |  getroot(self)
 |  
 |  parse(self, source, parser=None)
 |  
 |  write(self, file, encoding='us-ascii')

 

root, folder_node 都是一个Element, 有如下方法:

 

class _ElementInterface
 |  Methods defined here:
 | 
 |  __delitem__(self, index)
 | 
 |  __delslice__(self, start, stop)
 | 
 |  __getitem__(self, index)
 | 
 |  __getslice__(self, start, stop)
 | 
 |  __init__(self, tag, attrib)
 | 
 |  __len__(self)
 | 
 |  __repr__(self)
 | 
 |  __setitem__(self, index, element)
 | 
 |  __setslice__(self, start, stop, elements)
 | 
 |  append(self, element)
 | 
 |  clear(self)
 | 
 |  find(self, path)
 | 
 |  findall(self, path)
 | 
 |  findtext(self, path, default=None)
 | 
 |  get(self, key, default=None)
 | 
 |  getchildren(self)
 | 
 |  getiterator(self, tag=None)
 | 
 |  insert(self, index, element)
 | 
 |  items(self)
 | 
 |  keys(self)
 | 
 |  makeelement(self, tag, attrib)
 | 
 |  remove(self, element)
 | 
 |  set(self, key, value)

 

2. xml.dom.minidom module

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值