浅见池也 发表于 2015-4-25 10:49:26

python类库31[使用xml.etree.ElementTree读写xml]

  
  一 基本知识
1、插入节点
Element.insert(index, element) 、Element(tag[, attrib][, **extra]) 、SubElement(parent, tag[, attrib[, **extra]]) 、Element.append(subelement)
2、删除节点
Element.remove(subelement) 删除一个节点、Element.clear()删除该节点下所有子节点
3、在节点中插入属性
Element.set(key, value)
  4、查找节点
  a) Element.getiterator   b) Element.getchildren   c) Element.find   d) Element.findall
  
  二 读取xml
  1)xml为




   
    linux
    30

   
    windows
    20


  
  
  2)python脚本为


from xml.etree import ElementTree
def print_node(node):
    print "====================================="
    for key,value in node.items():
      print "%s:%s" % (key, value)   
    for subnode in node.getchildren():
      print "%s:%s" % (subnode.tag, subnode.text)   
def read_xml(text = '', xmlfile = ''):
    #root = ElementTree.parse(xmlfile)
    root = ElementTree.fromstring(text)
   
    # 1 getiterator()
    # only elements whose tag equals tag are returned from the iterator
    eitor = root.getiterator("employee")
    for e in eitor:
      print_node(e)
   
    # 2 getchildren()
    # Returns all subelements
    eitor = root.getchildren()
    for e in eitor:
      print_node(e)
   
    # 3 findall(match)
    # Finds all subelements matching match.
    # match may be a tag name or path. Returns an iterable yielding all matching elements
    node_findall = root.findall("employee")
    for e in node_findall:
      print_node(e)
    # 4 find(match)
    # Finds the first subelement matching match.
    # match may be a tag name or path. Returns an element instance or None
    node_find = root.find('employee')
    print_node(node_find)
   
if __name__ == '__main__':
    read_xml(open("employees.xml").read())   
  
  参考:
  http://blog.iyunv.com/kiki113/archive/2009/04/06/4052584.aspx
  
  完!
页: [1]
查看完整版本: python类库31[使用xml.etree.ElementTree读写xml]