最近写了个程序,存储数据时选择用xml件。在此记录,以备将来还会用到。
2、得到根元素
'COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
一、解析xml
1、得到doc对象 【parse()方法】
from xml.dom import minidom
doc = minidom.parse('xxx.xml')
或者
datasource = open('xxx.xml')
doc = minidom.parse(datasource)
3、节点属性root = doc.documentElement
nodeName, nodeValue, nodeType
nodeType: 'ATTRIBUTE_NODE'
'CDATA_SECTION_NODE''COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
nodeValue: 只对文本节点有效
4、访问子节点
getElementsByTagName():通过元素名访问子节点,返回子节点列表。(所有层次)
childNodes属性:返回某元素所有子节点的列表。(仅一层)
getAttribute():得到属性值
二、生成xml
1、生成doc
2、输出impl = getDOMInplementation()
doc = impl.createDocument(None, 'some tag', None)
top_element = doc.documentElement
toxml():输出紧凑的xml,字符串形式
toprettyxml():输出美化的xml,字符串格式
3、生成节点
元素节点 createElement('xxx')
文本节点 createTextNode('xxx')
4、添加注释
doc.appendChild(doc.createComment(data))
5、dom树
Node.appendChild(newChild)
Node.insertBefore(newChild, refChild)
6、写入xml文件 writexml()
Node.writexml(writer, indent="", addindent="", newl="")
writer是文件对象