- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
python读取xml文件
还可以参见网址/uidid-3036442.html
/uidid-3036442.html
2014-03-04 23:43 by 虫师, 13913 阅读, 1 评论, 收藏, 编辑
?
关于pythonxml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码。这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python?来读取xml?文件。
?
什么是xml
xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
abc.xml
Ok?,从结构上,它很像我们常见的HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容。
那么它有如下特征:
首先,它是有标签对组成,aa/aa
标签可以有属性:aa?id=’123’/aa
标签对可以嵌入数据:aaabc/aa
标签可以嵌入子标签(具有层级关系):
aa
?????bb/bb
/aa
?
获得标签属性
?
那么,下面来介绍如何用python来读取这种类型的文件。
mxl.dom.minidom?模块被用来处理xml文件,所以要先引入。
xml.dom.minidom.parse()?用于打开一个xmldom变量。
documentElement?用于得到dom对象的文档元素,并把获得的对象给root
每一个结点都有它的nodeNamenodeValue,nodeType属性。
nodeName为结点名字。
nodeValue是结点的值,只对文本结点有效。
nodeType是结点的类型。catalog是ELEMENT_NODE类型
现在有以下几种:
ATTRIBUTE_NODECDATA_SECTION_NODECOMMENT_NODEDOCUMENT_FRAGMENT_NODEDOCUMENT_NODEDOCUMENT_TYPE_NODEELEMENT_NODEENTITY_NODEENTITY_REFERENCE_NODENOTATION_NODEPROCESSING_INSTRUCTION_NODETEXT_NODE
NodeTypes?-?
/xmldom/dom_nodetype.asp
?
?
获得子标签
?
现在要获得catalog的
?xml version=1.0 encoding=utf-8?catalog
maxid4/maxid
login username=pytest passwd=123456
captionPython/caption
item id=4
caption测试/caption
/item
/login
item id=2
captionZope/caption
/item/catalog
对于知道元素名字的子元素,可以使用getElementsByTagName
#coding=utf-8import xml.dom.minidom
#打开xml文档
dom = xml.dom.minidom.parse(abc.xml)
#得到文档元素对象
root = dom.documentElement
bb = root.getElementsByTagName(maxid)
b= bb[0]print b.nodeName
bb = root.getElementsByTagName(login)
b= bb[0]print b.nodeName
如何区分相同标签名字的标签:
caption和item标签不止一个如何区分?
#coding=utf-8import xml.dom.minidom
#打开xml文档
dom = xml.dom.minidom.parse(abc.xml)
#得到文档元素对象
root = dom.documentElement
bb = root.getElementsByTagName(caption)
b= bb[2]print b.nodeName
bb = root.getElementsByTagName(item)
b= bb[1]print b.nodeName
root.getElementsByTagName(caption)?获得的是标签为caption?b[2]?,表示这一组标签中的第三个。
?
?
获得标签属性值
?
文档评论(0)