python原生态读写xml

注:在2.7版本中可用

用到的xml

<?xml version="1.0" encoding="utf-8"?>
<new_item>
	<new_code>1</new_code>
	<new_name>new</span_name>
	<new_desc>描述</new_desc>
	<item_list>
	<item>
		<item_name>itemName1</item_name>  
		<item_code>01</item_code>  
	</item>
	<item>
		<item_name>itemName2</item_name> 
		<item_code>02</item_code>  
	</item>
  </item_list>
</new_item>

引用

import xml.dom.minidom as minidom

读取方法

applyDoc = minidom.parse(文件地址)
#获取所有的节点
applyRoot = applyDoc.documentElement 
#获取new_item的节点
new_items = applyRoot.getElementsByTagName("new_item")
#循环获取所有new_item下面的节点
for new_item in new_items :
    new_name = config_spanNode.getElementsByTagName("new_name")[0]
    new_nameVal = span_nameNode.childNodes[0].nodeValue
    #循环new_list下面的item_list
    item_list= config_spanNode.getElementsByTagName("item_list")	
    for item in item_list:
        item_nameElem = config_itemNode.getElementsByTagName("item_name")[0]
        item_valueElem = config_itemNode.getElementsByTagName("item_value")[0]
        print(item_valueElem)

  写入方法

#定义文档
impl = minidom.getDOMImplementation()
NewDoc = impl.createDocument(None, 'NewItem', None)
NewRoot = NewDoc.documentElement
#创建NfsNode
itemsNode = NewDoc.createElement('items')
#给itemsNode节点增加Name属性
nfsNode.setAttribute("Name", 'name')
#调用写入函数
write_xml('存储地址',NewDoc)
#写入函数
def write_xml(filepath, doc):
	file = open(filepath, 'w')
	try:
		doc.writexml(file, addindent='  ', newl='\n', encoding='utf-8')
	finally:
		file.close()

由于我只用到了写入属性,所以在这里并没有补充其他节点写入方法,所以在下面补充几个参考资料:

http://blog.csdn.net/yueguanghaidao/article/details/7265246

http://www.cnblogs.com/hongten/p/hongten_python_xml_etree_elementtree.html

http://outofmemory.cn/code-snippet/914/python-kinds-jiexi-xml-bao-usage-method-summary

你可能感兴趣的:(python原生态读写xml)