python 读取xml 怎么只读取特定位置标签比如只读取sale节点下的nameid,不要inst里的部分

#!/usr/bin/evnpython
#coding:utf-8

try:
importxml.etree.cElementTreeasET
exceptImportError:
importxml.etree.ElementTreeasET
importsys

try:
tree=ET.parse("test.xml")#打开xml文档
root=tree.getroot()#获得root节点
exceptException,e:
print"Error:cannotparsefile:country.xml."
sys.exit(1)
forcountryinroot.findall('sale'):#找到root节点下的所有sale节点
sale_nameid=country.find('nameid').text#子节专点下节属点nameid的值
printsale_nameid


⑵ 用python解析XML格式的字符串

你这样的数据还没有用正则来的简单
r'(?<=\<Result\>)(.+?)(?=\</Result\>)'

用XML会比较麻烦:
dom1 = minidom.parseString(xml)
result = dom1.getElementsByTagName("Result")
result = result[0].childNodes[0].nodeValue

⑶ 如何用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<></>之间的内容并修改

python是有相关的解析html格式的模块的

可以识别出标签,简单的处理文件你可以用Beautiful Soup模块,想做大一些的爬虫可以使用scrapy框架的xpath语法来锁定标签。


这里引用下官方说明:

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。


Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。


Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。


因此可以很方便地提取出HTML或XML标签中的内容


给你个样例:

frombs4importBeautifulSoup
importurllib2

html=urllib2.urlopen(url).read()#这里是直接爬取一个网址了,html变量也可以是一个本地的文件
content=BeautifulSoup(html).findAll('a')#使用这句就可以提取出文件中所有的<a></a>中的内容

"""模块还支持很多路径索引修改相关的功能,总之功能是比较强大的"""


希望我的回答可以帮到你:-)

⑸ 如何用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

Word
文档本质上是压缩后的
资源文件

xml
文件,可以根据
Open
XML
标准去解析
xml
文件。
要是嫌麻烦,用
python-docx
库似乎也可以完成这个。

⑺ python中xml文件夹删除怎么恢复

你这贴的代码格式都不调一下,看的好痛苦。。。。。另:贴一份我早期写的一个解析xml转换为字典的代码,支持中文细微部分,你自己调import xml.etree.ElementTree as ETimport os'''将指定目录下的xml文件转换为字典 dictstrXmlFileName : xml 文件namestrElementPath : xml 节点dictSubElement : dict 用于返回eg. my_dict = xml2dict('xxx.xml', 'node', my_dict)'''def xml2dict(strXmlFileName, strElementPath, dictSubElement): elementList = [] dictSubElement.clear() try: eTree=ET.parse(os.getcwd() + strXmlFileName) except Exception,errorinfo: print "xml2dict: ET.parse(%s) generate exception, errorinfo:%s" % ((os.getcwd() + strXmlFileName), errorinfo) raise errorinfo try: elementList=eTree.findall(strElementPath) except Exception,errorinfo: print "xml2dict: eTree.findall(%s) generate exception, errorinfo:%s" % (strElementPath, errorinfo) raise errorinfo pathList = [] for element in elementList: for subelement in element.getchildren():# print "tag:%s, text:%s" % (subelement.tag, subelement.text.encode("utf-8")) if subelement.text is not None: if subelement.tag in pathList: dictSubElement[subelement.tag] = (os.getcwd() + subelement.text).encode('utf-8') else : dictSubElement[subelement.tag] = subelement.text.encode('utf-8') else: dictSubElement[subelement.tag] = "" #将None赋值一串空字符串

⑻ python如何解析xml格式的字符串,最好解析成键值对的那种,

有现成的库可以用,xml.etree.ElementTree,或者xml.dom.minidom,ET相对来说简单一些,而minidom配上node缓存也是一种不错的实现,原理都一样,就是把xml先转化为dom树。这两个库可以参考官方文档,xml以及dom树可以参考w3school

⑼ python xml文件,截取每行想要的字符

#coding=utf-8
importxml.dom.minidom
dom=xml.dom.minidom.parse(r'C:UsersaaaDesktop1111.xml')
root=dom.documentElement
itemlist=root.getElementsByTagName('video')

a=[]
foriteminitemlist:
pd=item.getAttribute("src")
a.append(pd)

b=tuple(set(a))
foriinb:
printi

⑽ python xml 查找关键字

可以这么写:
def find(html):
soup = BeautifulSoup(html.getResponse().content,from_encoding='gb18030')

for index in soup.find_all('ROWDATA'):

print index

html是你的网页回域名答