㈠ python如何读取xml中的list表,并将其转换成如下VCF格式输出请给出具体程序,编译成功给分
1.可以使用ElementTree模块
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import mp
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import tostring
2.可以使用BeautifulSoup模块
㈡ python怎么读取xml
引入XML组件:import xml.dom.minidom。
创建一个xml文件,<?xml version="1.0" encoding="utf-8"?>。
相关推荐:《Python教程》
加载读取XML文件,xml.dom.minidom.parse('abc.xml'),这是xml文件的对象。
获取XML文档对象,root = dom.documentElement。
获取标签之间的数据 ,rootdata.getElementsByTagName('caption')。
总结一下xml对象,node.getAttribute(AttributeName),获取XML节点属性值,node.getElementsByTagName(TagName),获取XML节点对象集合,等等具体的查看手册。
㈢ 如何编写一个程序从xml文件里面提取一些关键的节点数据组成新的xml文件,最好是用python编写
给你一段代码,供参考:
fromsgmllibimportSGMLParser
importhtmlentitydefs
classBaseHTMLProcessor(SGMLParser):
defreset(self):
#extend(calledbySGMLParser.__init__)
self.pieces=[]
SGMLParser.reset(self)
defunknown_starttag(self,tag,attrs):
#calledforeachstarttag
#attrsisalistof(attr,value)tuples
#e.g.for<preclass="screen">,tag="pre",attrs=[("class","screen")]
#,but
#'tquotedinthesource
#document,
#(singletodoublequotes).
#Notethatimproperlyembeddednon-HTMLcode(likeclient-sideJavascript)
#,causingruntimescripterrors.
#Allnon-(<!--code-->)
#(inhandle_comment).
strattrs="".join(['%s="%s"'%(key,value)forkey,valueinattrs])
self.pieces.append("<%(tag)s%(strattrs)s>"%locals())
defunknown_endtag(self,tag):
#calledforeachendtag,e.g.for</pre>,tagwillbe"pre"
#Reconstructtheoriginalendtag.
self.pieces.append("</%(tag)s>"%locals())
defhandle_charref(self,ref):
#,e.g.for" ",refwillbe"160"
#.
self.pieces.append("&#%(ref)s;"%locals())
defhandle_entityref(self,ref):
#calledforeachentityreference,e.g.for"&;",refwillbe""
#.
self.pieces.append("&%(ref)s"%locals())
#;otherentitiesarenot
ifhtmlentitydefs.entitydefs.has_key(ref):
self.pieces.append(";")
defhandle_data(self,text):
#calledforeachblockofplaintext,i.e.outsideofanytagand
#
#Storetheoriginaltextverbatim.
self.pieces.append(text)
defhandle_comment(self,text):
#calledforeachHTMLcomment,e.g.<!--insertJavascriptcodehere-->
#Reconstructtheoriginalcomment.
#-side
#code(likeJavascript)
#processorundisturbed;seecommentsinunknown_starttagfordetails.
self.pieces.append("<!--%(text)s-->"%locals())
defhandle_pi(self,text):
#,e.g.<?instruction>
#.
self.pieces.append("<?%(text)s>"%locals())
defhandle_decl(self,text):
#calledfortheDOCTYPE,ifpresent,e.g.
#<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
# "http://www.w3.org/TR/html4/loose.dtd">
#ReconstructoriginalDOCTYPE
self.pieces.append("<!%(text)s>"%locals())
defoutput(self):
""""""
return"".join(self.pieces)
if__name__=="__main__":
fork,vinglobals().items():
printk,"=",v
㈣ 用python 读取 xml里的属性值
from xml.dom import *
d = minidom.parse('**.xml')
s = d.getElementsByTagName('string')[0].getAttribute('name')
a = d.getElementsByTagName('string')[0]
㈤ 如何用python读取xml文件
一、简介
XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用。它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性。
python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合,注意xml.dom包里面有许多模块,须区分它们间的不同;二是xml.sax.*模块,它是SAX API的实现,这个模块牺牲了便捷性来换取速度和内存占用,SAX是一个基于事件的API,这就意味着它可以“在空中”处理庞大数量的的文档,不用完全加载进内存;三是xml.etree.ElementTree模块(简称 ET),它提供了轻量级的Python式的API,相对于DOM来说ET 快了很多,而且有很多令人愉悦的API可以使用,相对于SAX来说ET的ET.iterparse也提供了 “在空中” 的处理方式,没有必要加载整个文档到内存,ET的性能的平均值和SAX差不多,但是API的效率更高一点而且使用起来很方便。
二、详解
解析的xml文件(country.xml):
在CODE上查看代码片派生到我的代码片
<?xml version="1.0"?>
<data>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
1、xml.etree.ElementTree
ElementTree生来就是为了处理XML,它在Python标准库中有两种实现:一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。注意:尽量使用C语言实现的那种,因为它速度更快,而且消耗的内存更少。
在CODE上查看代码片派生到我的代码片
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
这是一个让Python不同的库使用相同API的一个比较常用的办法,而从Python 3.3开始ElementTree模块会自动寻找可用的C库来加快速度,所以只需要import xml.etree.ElementTree就可以了。
在CODE上查看代码片派生到我的代码片
#!/usr/bin/evn python
#coding:utf-8
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
import sys
try:
tree = ET.parse("country.xml") #打开xml文档
#root = ET.fromstring(country_string) #从字符串传递xml
root = tree.getroot() #获得root节点
except Exception, e:
print "Error:cannot parse file:country.xml."
sys.exit(1)
print root.tag, "---", root.attrib
for child in root:
print child.tag, "---", child.attrib
print "*"*10
print root[0][1].text #通过下标访问
print root[0].tag, root[0].text
print "*"*10
for country in root.findall('country'): #找到root节点下的所有country节点
rank = country.find('rank').text #子节点下节点rank的值
name = country.get('name') #子节点下属性name的值
print name, rank
#修改xml文件
for country in root.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
root.remove(country)
tree.write('output.xml')
运行结果:
三、总结
(1)Python中XML解析可用的类库或模块有xml、libxml2 、lxml 、xpath等,需要深入了解的还需参考相应的文档。
(2)每一种解析方式都有自己的优点和缺点,选择前可以综合各个方面的性能考虑。
(3)若有不足,请留言,在此先感谢!
㈥ 如何用python提取XML中的注释
from xml.etree import ElementTreestr_ = '' #文件中的xml字符串xml_obj = ElementTree.fromstring(str_)
然后通过对xml_obj进行操作,xml_obj本身也是一个xml节点。
xml_obj.getchildren() 获取根节点的子节点列表
xml_obj.findall(node_name) 搜索xml_obj节点下名为node_name的所有节点
xml_obj.tag 节点的标签
xml_obj.text 节点的文本信息 ,本例中可以获得K这个文本。
xml_obj.tail 节点尾部的文本信息,本例中获取Channel Regulator KCR1 Suppresses Heart Rhythm by Molating the Pacemaker Current I 就需要搜索到标签为sup的节点,然后取节点的tail文本获得。
㈦ 用python提取xml文件<text></text>标签内的文本内容
用xml模块操作
㈧ 求python怎么提取xml里面的内容
import xml.etree.ElementTree
e = xml.etree.ElementTree.parse('x.xml').getroot()
for atype in e.findall('mysqlhost'):
print(atype.text)
㈨ 用python获取xml标签中的内容
importxml.etree.ElementTree
e=xml.etree.ElementTree.parse('x.xml').getroot()
foratypeine.findall('mysqlhost'):
print(atype.text)
㈩ 在Python中如何用正则表达式提取xml中的<p>之间的内容
#代码
html_text='''
<p>WhenEScellsdifferentiate,-coateddishes,similartotheEScellsonthe
<xrefref-type="bibr"rid="pone.0000015-Rogers1">[17]</xref>and<italic>nanog</italic>,
,<xrefref-type="bibr"rid="pone.0000015-Chambers1">[19]</xref>well-.</p>
<p>(A)
<xrefref-type="bibr"rid="pone.0000015-Rogers1">[1]</xref>and<italic>nanog</italic>
<xrefref-type="bibr"rid="pone.0000015-Mitsui1">[2]</xref>,<xrefref-type="bibr"rid="pone.0000015-Chambers1">[3]</xref>variousdosesofLIF(0–1,000units/ml).</p>
'''
pattern=r'(<p>.*?</p>)'
html_text=re.sub(' ','',html_text)
text=re.findall(pattern,html_text)
print(text)
#输出
['<p>WhenEScellsdifferentiate,-coateddishes,similartotheEScellsonthe<xrefref-type="bibr"rid="pone.0000015-Rogers1">[17]</xref>and<italic>nanog</italic>,,<xrefref-type="bibr"rid="pone.0000015-Chambers1">[19]</xref>well-.</p>',
'<p>(A)<xrefref-type="bibr"rid="pone.0000015-Rogers1">[1]</xref>and<italic>nanog</italic><xrefref-type="bibr"rid="pone.0000015-Mitsui1">[2]</xref>,<xrefref-type="bibr"rid="pone.0000015-Chambers1">[3]</xref>variousdosesofLIF(0–1,000units/ml).</p>']