python xml.dom.minidom 简单读取xml文件

#coding:utf-8


import os
import os.path
import xml.dom.minidom
import xlrd
import xlwt




def get_xml_dom(xml_file=''):
    """
    """
    if xml_file:
        dom = xml.dom.minidom.parse(xml_file)
    else:
        dom = xml.dom.minidom.Document()
    
    #root = dom.documentElement
    #name = root.getElementsByTagName('sound')
    return dom


def create_node(dom,new_node,parent_node=''):
    """
    创建节点(包括根节点)
    """
    if not parent_node:
        parent_node = dom.createElement('root')
        dom.appendChild(parent_node)


    node = dom.createElement(new_node)
    parent_node.appendChild(node)
    return node


def create_node_text(dom,node,txt):
    """
    节点赋值
    """
    txt = dom.createTextNode(txt)
    node.appendChild(txt)
    return node


def get_node_value(node,tag):
    """
    """
    for x in node:
        nm = x.nodeName
        print nm
        if nm == tag:
            return x.firstChild.data
    
def get_node_data(node):
    """
    获得节点文本
    """
    return node.firstChild.data


def set_node_data(node,txt):
    """
    节点赋值 只有节点上有值 才能 x.firstChild.data
    """
    for x in node:
        x.firstChild.data = txt
    return node


def get_node_name(node):
    """
    获得节点名
    """
    return node.nodeName


def set_node_attribute(node,key,val):
    """
    设置节点属性
    """
    node.setAttribute(key,val)
    return node


def remove_node_child(parent_node,c_node):
    """
    删除子节点
    """
    return parent_node.removeChild(c_node)


def get_elementsByTagName(dom,tag):
    """
    获取标签
    """
    root = dom
    return root.getElementsByTagName(tag)


def write_xml(dom='',new_xml_file='new_xml.xml'):
    """
    生成xml
    """
    if not dom:
        dom = get_xml_dom()


    #.writexml()第一个参数是目标文件对象,第二个参数是根节点的缩进格式,第三个参数是其他子节点的缩进格式,
    # 第四个参数制定了换行格式,第五个参数制定了xml内容的编码。
    with open(new_xml_file,'w') as fx:
        dom.writexml(fx,indent='',addindent='\t',newl='\n',encoding='UTF-8')






def read_xlsx(filename):
    """
    读取excel表格
    """
    rdx = xlrd.open_workbook(filename)
    sheet = rdx.sheet_by_index(0)
    #sheet = data.sheets()[0]
    #sheet = data.sheet_by_name(u'sheet1')


    #行数
    nrows = sheet.nrows
    #列数
    ncols = sheet.ncols


    for r in xrange(0,nrows):
        #单元行的值 row_val 为list
        row_val = sheet.row_values(x)


    #第二行第二列的值
    row = 1
    col = 1
    sheet.cell_value(row,col)


def test():
    """
    """
    dom = get_xml_dom()
    school = create_node(dom,'school')
    create_node(dom,'house',school)
    house_node = get_elementsByTagName(dom,'house')
    create_node_text(dom,house_node[0],'fuck')
    print get_node_data(house_node[0])
    set_node_data(house_node,'fff')
    write_xml(dom)
    """
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
        <school>
            <house>fff</house>
        </school>
    </root>
    """


test()








  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值