美文网首页我爱编程
2018-02-10 记录python中的xml操作

2018-02-10 记录python中的xml操作

作者: wowshiwoniu | 来源:发表于2018-02-10 11:12 被阅读0次

xml使用<xml.etree.ElementTree>操作数据

  • 读取xml字符串
    网上大多教程是从文本中读取,我这里只是需要处理xml字符串,因此直接在代码中加载,如下:
    • 首先导入包
    try:
        import xml.etree.cElementTree as ET
    except ImportError:
        import xml.etree.ElementTree as ET
  • xml字符串
content = '''<?xml version="1.0" encoding="GBK"?>
<request>
    <head>
        <name>测试</name>
        <age>22</age>
        <sex></sex>
    </head>
    <body>
        <happy>哈哈</happy>
        <time>666</time>
    </body>
</request>'''
  • 加载字符串
    在此处遇到一问题,就是因为xml头部是gbk格式,因此加载报错,此处先暂时替换掉了GBK为utf-8
content = content.replace('GBK', 'utf-8').replace('gbk', 'utf-8')
tree = ET.fromstring(content)
  • 打印一些属性
    print tree  # 打印root节点元素
    print tree.find('body')  #  打印<request>下的body节点
    name = tree[0].find('name')  #  获取head节点下的name节点
    name.text = 'This is a test'  # 修改name节点的名字
    print tree[1]   # 打印<request>下的第二个节点,也就是body节点
  • 移除节点
    tree.remove(tree[0])  #  移除request下标的第一个节点,即head
    print tree.tag  
    print tree[0].tag
    print tree[0].text
  • 新增节点
    e = ET.Element('spam')
    e.text = 'This is a test'
    tree.insert(1, e)  # 此处新增元素加在哪里,只需要将tree替换成需要添加的元素节点
  • 转换成xml字符串
print ET.tostring(tree)   # tree是打印的全部xml字符串,换成对应的节点,可以打印当前节点下的数据。PS:此处不带xml头部,最后需要手动添加

相关文章

网友评论

    本文标题:2018-02-10 记录python中的xml操作

    本文链接:https://www.haomeiwen.com/subject/znectftx.html