tensorflow学习——xml文件写与读

来源:互联网 发布:定情信物 知乎 编辑:程序博客网 时间:2024/05/15 15:24

1、写入xml

from xml.dom import minidom#写入xml文档的方法def create_xml_test(filename):    #新建xml文档对象    xml=minidom.Document()    #创建第一个节点,第一个节点就是根节点了    bookstore=xml.createElement('bookstore')    #写入属性(xmlns:xsi是命名空间,同样还可以写入xsi:schemaLocation指定xsd文件)    bookstore.setAttribute('xmlns:xsi',"http://www.w3.org/2001/XMLSchema-instance")#设置命名空间    bookstore.setAttribute('xsi:noNamespaceSchemaLocation','bookstore.xsd')#引用本地XML Schema    #创建节点后,还需要添加到文档中才有效    xml.appendChild(bookstore)    ############book:Python处理XML之Minidom################    #一般根节点是很少写文本内容,那么给根节点再创建一个子节点    book=xml.createElement('book')    book.setAttribute('genre','XML')    bookstore.appendChild(book)    #给这个节点加入文本,文本也是一种节点    title = xml.createElement('title')    title_text = xml.createTextNode('Python处理XML之Minidom')  #元素内容写入    title.appendChild(title_text)    book.appendChild(title)    author = xml.createElement('author')    author_first_name = xml.createElement('first_name')    author_last_name  = xml.createElement('last-name')    author_first_name_text = xml.createTextNode('张')    author_last_name_text  = xml.createTextNode('三')    author.appendChild(author_first_name)    author.appendChild(author_last_name)    author_first_name.appendChild(author_first_name_text)    author_last_name.appendChild(author_last_name_text)    book.appendChild(author)    price = xml.createElement('price')    price_text = xml.createTextNode('28')    price.appendChild(price_text)    book.appendChild(price)    ############book1:Python写网站之Django####################    book1 = xml.createElement('book')    book1.setAttribute('genre','Web')    bookstore.appendChild(book1)    title1 = xml.createElement('title')    title_text1 = xml.createTextNode('Python写网站之Django')    title1.appendChild(title_text1)    book1.appendChild(title1)    author1 = xml.createElement('author')    book.appendChild(author1)    author_first_name1 = xml.createElement('first-name')    author_last_name1  = xml.createElement('last-name')    author_first_name_text1 = xml.createTextNode('李')    author_last_name_text1  = xml.createTextNode('四')    author1.appendChild(author_first_name1)    author1.appendChild(author_last_name1)    author_first_name1.appendChild(author_first_name_text1)    author_last_name1.appendChild(author_last_name_text1)    book1.appendChild(author1)    price1 = xml.createElement('price')    price_text1 = xml.createTextNode('40')    price1.appendChild(price_text1)    book1.appendChild(price1)    #写好之后,就需要保存文档了    f=open(filename,'wb')    f.write(xml.toprettyxml(indent='\t', encoding='utf-8'))    f.close()if __name__=='__main__':    #在当前目录下,创建 bookstore.xml    create_xml_test('bookstore.xml')

2、读取xml

from xml.dom import minidomdef read_xml_test(filename):    #打开这个文档,用parse方法解析    xml=minidom.parse(filename)    #获取根节点    root=xml.documentElement    #得到根节点下面所有的book节点    #更多方法可以参考w2school的内容或者用dir(root)获取    book=root.getElementsByTagName('book')    #遍历处理,elements是一个列表    for book in book:        #判断是否有id属性        if book.hasAttribute('genre'):            #不加上面的判断也可以,若找不到属性,则返回空            print ('genre:',book.getAttribute('genre'))        #遍历element的子节点        for node in book.childNodes:#            print('a', book.getElementsByTagName('title'))#            print(node.firstChild.data)#            #通过nodeName判断是否是文本            if node.nodeName=='#text':##                用data属性获取文本内容##                text = node.data.replace('\n','')##                这里的文本需要特殊处理一下,会有多余的'\n'##                print( u'\t文本:',text)##                print ('\t'+node.nodeName)                pass            else:#                #输出节点名                print (' '+node.nodeName+':')                print(node.firstChild.data)                print (str(node.childNodes))if __name__ == '__main__':    read_xml_test('bookstore.xml')
原创粉丝点击