话部多说,xml格式如下:
<?xml version="1.0" encoding="UTF-8"?> <conf> <nova>192.168.0.1</nova> <glance>192.168.0.2</glance> <keystone>192.168.0.3</keystone> </conf>
conf文件如下:
[service_ip_list] keystone = X.X.X.X nova = X glance = X
需要提取xml中的属性和值替换掉conf中的对应的配置,转换程序是用python写的
#-*-coding:utf-8-*- from xml.dom import minidom doc = minidom.parse("conf.xml") conf_elements=doc.getElementsByTagName("conf")[0] nova=conf_elements.getElementsByTagName("nova")[0] #print nova.nodeName,nova.childNodes[0].nodeValue glance=conf_elements.getElementsByTagName("glance")[0] #print glance.nodeName,glance.childNodes[0].nodeValue keystone=conf_elements.getElementsByTagName("keystone")[0] #keystone_ip=keystone.childNodes[0].nodeValue #print keystone.nodeName,keystone.childNodes[0].nodeValue import ConfigParser import string,os,sys cf=ConfigParser.ConfigParser() cf.read("ip-list.conf") cf.set("service_ip_list","keystone",keystone.childNodes[0].nodeValue) cf.set("service_ip_list","nova",nova.childNodes[0].nodeValue) cf.set("service_ip_list","glance",glance.childNodes[0].nodeValue) fh=open("ip-list.conf",'w') cf.write(fh) fh.close()