首页 > 编程语言 >python解析xml

python解析xml

时间:2023-07-12 14:46:29浏览次数:53  
标签:xml python getElementsByTagName collection namespaceURI 查找 xxxxxxxxxx 解析

主要是查询标签:

import xml.dom.minidom

s='''xml字符串'''

'''
这里做一些解释:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>  #这种形式的,前面的soapenv表示命名空间url(namespaceURI),需要使用getElementsByTagNameNS来查找,若要使用getElementsByTagName()查找,就必须带上完整的namespaceURI:tagname(此处就是soapenv:Body)
        <ns1:vRBTOneKeyPress soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://impl.crbt.cmcc.com">
            <event href="#id0"/>
        </ns1:vRBTOneKeyPress>
        <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:VRBTOneKeyPressEvt" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://schemas.crbt.cmcc.com">
            <DID xsi:type="xsd:string">xxxxxxxxxx</DID>
            <DIDPwd xsi:type="xsd:string">xxxxxxxxxx</DIDPwd>
            <SEQ xsi:type="xsd:string">xxxxxxxxxx</SEQ>
            <calledNumber xsi:type="xsd:string">xxxxxxxxxx</calledNumber>
            <callingNumber xsi:type="xsd:string">xxxxxxxxxx</callingNumber>
            <key xsi:type="xsd:string">xxxxxxxxxx</key>
            <timeStamp xsi:type="xsd:string">xxxxxxxxxx</timeStamp>    #这种前面不带namespaceURI的,就可以直接使用getElementsByTagName()查找
            <toneID xsi:type="xsd:string">xxxxxxxxxx</toneID>
            <playScene xsi:type="xsd:string">xxxxxxxxxx</playScene>
            <pressType xsi:type="xsd:string">xxxxxxxxxx</pressType>
            <callID xsi:type="xsd:string">xxxxxxxxxx</callID>
        </multiRef>
    </soapenv:Body>
</soapenv:Envelope>
'''


DOMTree = xml.dom.minidom.parseString(s)
collection = DOMTree.documentElement        #文档
namespaceUrl = collection.namespaceURI        #命名空间
body = collection.getElementsByTagName('timeStamp')    #查询该标签,返回的是一个列表
print(body[0].firstChild.data)        #获取标签的内容,按照示例文本,这里输出为xxxxxxxxxx

 

标签:xml,python,getElementsByTagName,collection,namespaceURI,查找,xxxxxxxxxx,解析
From: https://www.cnblogs.com/love-DanDan/p/17547449.html

相关文章

  • Python异步编程
    协程不是计算机提供,程序员人为创造也称为微线程,是一种上下文切换技术(通过一个线程实现代码块互相切换执行)普通代码的执行流程自上而下顺序执行deffun1():print(1)#...print(2)deffun2():print(3)#...print(4)fun1()fun2()-结......
  • 用Python编写网页自动答题工具,满分轻松到手,你就是全班最靓的仔!
    最近自动答题的外包很多,来给大家分享一下如何用Python来实现自动答题。好了话不多说,我们开始操作。首先你需要准备这些环境使用Python3.8解释器Pycharm编辑器 模块使用importrequests--->数据请求模块pipinstallrequestsimportrefromsele......
  • python安装教程
    1.下载安装python解释器:地址:https://www.python.org/downloads/release/python-372/(选择此项) 2.pycharm安装教程:安装地址:https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC ......
  • python3。1
          print('您拥有三次机会输入正确的账号和密码')print('三次输入错误,账号将被锁定')i=3whilei>0:user_name=input('请输入您的账号:')psw=input('请输入密码:')ifuser_name=='zy'andpsw=='666666':......
  • Java实现浏览器端大文件分片上传实例解析
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。首先我们需要了解的是上传文件三要素:1.表单提交方式:post(get方式提交有大小限制,post没有)2.表单的enctype属性:必须设置为multipart/form-data.3.表单必须......
  • 解决python升级的具体操作步骤
    如何升级Python版本作为一名经验丰富的开发者,我将帮助你学习如何升级Python版本。在本文中,我将为你提供一个详细的步骤表格,并解释每一步应该做什么,并提供相应的代码示例。升级Python的步骤以下是升级Python版本的步骤:步骤描述步骤1确定当前Python版本步骤2下载......
  • python学习笔记:继承与超类
    与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。1.继承要指定超类,可在定义类时,在class语句中的类名后加上超类名基类就是超类,派生类就是子类格式classDog:# passclassBobo(Dog):#Dog类的子类 pass子类会......
  • Python爬取哔哩哔哩视频
    Python爬取哔哩哔哩视频一、环境准备我这里使用的是环境如下仅供参考:开发工具:pycharmpython环境:python-3.8.0依赖的包:shutil,os,re,json,choice,requests,lxml二、页面分析我在这里就拿前段时间非常火的马老师的视频来举例子吧。视频链接:https://www.bilibili.com/video/BV1Ef4......
  • python 的命令行参数使用ArgumentParser
    argparse是一个python模块,用途是:命令行执行选项、参数和子命令的解释importargparse #创建解释器parser=argparse.ArgumentParser()#添加参数parser.add_argument('-g','--good',choices=['yuwen','shuxue'])#'-g'代表短选项,在命令行输入-g和-good效果一样,作......
  • Visual C# 中XML注释换行
    只需将<para>标记用于诸如<summary>、<remarks>或<returns>等标记内即可 ///<summary>///基类(第1行)///<para>说明:(第2行)</para>///<para>封装一些常用的成员(第3行)</para>///<para>前面要用全角空格才能显示出空格来(第4行)</para>///</s......