tensorflow学习——xml文件写与读

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 minidom

def 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')

你可能感兴趣的:(tensorflow学习——xml文件写与读)