九、Python读写XML文件

该章简单介绍,如何通过python去读取XML文件,请看如下例子

下面的例子将用到config.xml文件 config.xml文件内容如下:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" standalone="yes" ?>
<CONFIG_LIST>
 <COMP NAME="oracle.assistants.netca.client" VER="11.2.0.1.0" PLAT="NT_X86">
    <path value="/opt/imap/lib" />
    <path value="/opt/imap/med/lib1" />
    <path value="/opt/imap/med/lib2" />
    <path value="/opt/imap/med/lib3" />
    <path value="/opt/imap/med/lib4" />
 </COMP>
</CONFIG_LIST>

 一、读取XML文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: gb18030 -*-  

#获取 path下得value属性集合,并进行替换        
def get_tagname():  
    from xml.dom.minidom import parse, parseString
    doc = parse("f:\\config.xml")  
    for node in doc.getElementsByTagName("path"):  
        value_str = node.getAttribute("value")
        if value_str.find("/med/")&gt;0:
            print value_str.replace('/opt/imap/',"/opt/oss/")
        else:
            print value_str

get_tagname()

  二、生成XML文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: gb18030 -*-  
#生成xml文件      
def GenerateXml():
  import xml.dom.minidom
  impl = xml.dom.minidom.getDOMImplementation()
  dom = impl.createDocument(None, 'CONFIG_LIST', None)
  root = dom.documentElement  
  employee = dom.createElement('COMP')
  root.appendChild(employee)

  nameE=dom.createElement('path')
  nameT=dom.createTextNode('linux') nameE.appendChild(nameT)
  nameE.setAttribute("value","aaaaaaaaaaa") #增加属性
  employee.appendChild(nameE)

  f= open('f:\\config_new.xml', 'a')
  dom.writexml(f, addindent='  ', newl='\n')
  f.close()  

GenerateXml()

结果:生成的config_new.xml如下:

1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<CONFIG_LIST>
  <COMP>
    <path value="aaaaaaaaaaa">
      linux
    </path>
  </COMP>
</CONFIG_LIST>
Tags: , 
文 / 甲乙丙丁
LEAVE A REPLY

loading