本文整理汇总了Python中xml.etree.cElementTree.ElementTree.findall方法的典型用法代码示例。如果您正苦于以下问题:Python ElementTree.findall方法的具体用法?Python ElementTree.findall怎么用?Python ElementTree.findall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.etree.cElementTree.ElementTree
的用法示例。
在下文中一共展示了ElementTree.findall方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: extractImages
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def extractImages(html):
if html is None:
return [], html
tree = ElementTree()
tree.parse(StringIO(html))
imagetags = tree.findall(".//img")
images = []
for tag in imagetags:
image = tag.get('src')
path, name = os.path.split(image)
if image not in images:
images.append(image)
tag.set('alt', name)
tag.set('title', name)
#index files for multipart storage
index = {}
for image in images:
path, name = os.path.split(image)
index[image] = '0x%08x' % binascii.crc32(name)
#update html email image tags
for tag in imagetags:
image = tag.get('src')
tag.set('src', "cid:%s" % index[image])
html = StringIO()
tree.write(html)
html.write("\n")
return [index, html.getvalue()]
示例2: updatebq
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def updatebq(self):
from xml.etree.cElementTree import ElementTree
tree = ElementTree()
tree.parse(GSXML)
tvlist = []
for iptv in tree.findall("iptv"):
name = iptv.findtext("name").title()
(protocol, serviceType, bufferSize, epgId) = iptv.findtext("type").split(":")
uri = iptv.findtext("uri")
if protocol in "livestreamer":
uri = "http://localhost:88/" + uri
uri = uri.replace(":", "%3a")
service = "#SERVICE {s}:0:1:{e}:{e}:0:0:0:0:0:{u}:{n}\n".format(s=serviceType,e=epgId,u=uri,n=name)
tvlist.append((name,service))
tvlist=sorted(tvlist, key=lambda channel: channel[0]) #sort by name
with open(GSBQ, "w") as f:
f.write("#NAME GreekStreamTV\n")
for (name, service) in tvlist:
f.write(service)
com = "cat /usr/lib/enigma2/python/Plugins/Satdreamgr/UpdateBouquet/stream.xml ; rm /usr/lib/enigma2/python/Plugins/Satdreamgr/UpdateBouquet/stream.xml"
out = os.popen(com)
return list
示例3: _split_configuration
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def _split_configuration(self, projectfile, temp_dir):
num_pieces = multiprocessing.cpu_count()
tree = ET(file=unicode(projectfile))
num_files = len(tree.findall('./files/file'))
splitfiles = []
files_per_job = int(math.ceil(float(num_files)/num_pieces))
for idx in xrange(num_pieces):
tree = ET(file=unicode(projectfile))
root = tree.getroot()
start = idx*files_per_job
end = start + files_per_job
if end > num_files:
end = None
for elem in ('files', 'images', 'pages',
'file-name-disambiguation'):
elem_root = root.find(elem)
to_keep = elem_root.getchildren()[start:end]
to_remove = [x for x in elem_root.getchildren()
if not x in to_keep]
for node in to_remove:
elem_root.remove(node)
out_file = temp_dir / "{0}-{1}.ScanTailor".format(projectfile.stem,
idx)
tree.write(unicode(out_file))
splitfiles.append(out_file)
return splitfiles
示例4: terminology_identifiers
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def terminology_identifiers(self):
tag_name = "{http://openehr.org/Terminology.xsd}TerminologyIdentifiers"
term_ids = []
with open(OPENEHR_TERMINOLOGY_FILEPATH) as terminology_file:
root = ET().parse(terminology_file)
term_ids = [term_id.attrib['VSAB'] for term_id in root.findall(tag_name)]
return term_ids
示例5: all_playlists
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def all_playlists(filename):
'''
Return a dict of all playlists in the Rhythmbox XML file, whose
keys are the playlist names and whose values are lists of files.
'''
tree = ElementTree(file=filename)
return { pl.get('name') : _playlist_files(pl)
for pl in tree.findall("playlist") }
示例6: one_playlist
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def one_playlist(filename, playlistname):
'''Return the files in the playlist in the Rhythmbox XML file.'''
tree = ElementTree(file=filename)
for pl in tree.findall("playlist"):
# My old version of etree doesn't support attributes in the
# path spec, so we check them manually.
if pl.get('name') == playlistname:
return _playlist_files(pl)
raise ValueError('Playlist not found: ' + playlistname)
示例7: dowaitcount
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def dowaitcount(self, original_request, collection, count, label=""):
hrefs = []
for _ignore in range(self.manager.server_info.waitcount):
req = request(self.manager)
req.method = "PROPFIND"
req.host = original_request.host
req.port = original_request.port
req.ruris.append(collection[0])
req.ruri = collection[0]
req.headers["Depth"] = "1"
if len(collection[1]):
req.user = collection[1]
if len(collection[2]):
req.pswd = collection[2]
req.data = data(self.manager)
req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:getetag/>
</D:prop>
</D:propfind>
"""
req.data.content_type = "text/xml"
result, _ignore_resulttxt, response, respdata = self.dorequest(req, False, False, label="%s | %s %d" % (label, "WAITCOUNT", count))
hrefs = []
if result and (response is not None) and (response.status == 207) and (respdata is not None):
tree = ElementTree(file=StringIO(respdata))
for response in tree.findall("{DAV:}response"):
href = response.findall("{DAV:}href")[0]
if href.text.rstrip("/") != collection[0].rstrip("/"):
hrefs.append(href.text)
if len(hrefs) == count:
return True, None
delay = self.manager.server_info.waitdelay
starttime = time.time()
while (time.time() < starttime + delay):
pass
if self.manager.debug and hrefs:
# Get the content of each resource
rdata = ""
for href in hrefs:
result, respdata = self.doget(req, (href, collection[1], collection[2],), label)
test = "unknown"
if respdata.startswith("BEGIN:VCALENDAR"):
uid = respdata.find("UID:")
if uid != -1:
uid = respdata[uid + 4:uid + respdata[uid:].find("\r\n")]
test = self.uidmaps.get(uid, "unknown")
rdata += "\n\nhref: {h}\ntest: {t}\n\n{r}\n".format(h=href, t=test, r=respdata)
return False, rdata
else:
return False, len(hrefs)
示例8: __init__
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def __init__(self):
self._path = os.path.dirname(os.path.abspath(__file__))
print "Loading Rhythmbox database...",
tree = ElementTree()
tree.parse(database)
self._entries = tree.findall("entry")
self.songs = {}
self.artists = {}
self.albums = {}
self.relationships = {}
self.load_rhythmbox_db()
示例9: parseStreamList
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def parseStreamList(self):
tvlist = []
tree = ElementTree()
tree.parse(self.xml)
for iptv in tree.findall('iptv'):
tvlist.append({'name': str(iptv.findtext('name')).title(),
'icon': str(iptv.findtext('icon')),
'type': str(iptv.findtext('type')),
'uri': self.parseStreamURI(str(iptv.findtext('uri')))})
return sorted(tvlist, key=lambda item: item['name'])
示例10: parseStreamList
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def parseStreamList(self):
tvlist = []
tree = ElementTree()
tree.parse(self.xml)
for iptv in tree.findall('iptv'):
n = str(iptv.findtext('name'))
i = str(iptv.findtext('icon'))
u = str(iptv.findtext('uri'))
t = str(iptv.findtext('type'))
tvlist.append({'name':n, 'icon':i, 'type':t, 'uri':self.parseStreamURI(u)})
return tvlist
示例11: parseStreamDB
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def parseStreamDB(filename):
tvlist = []
tree = ElementTree()
tree.parse(filename)
for iptv in tree.findall('iptv'):
n = str(iptv.findtext('name'))
i = str(iptv.findtext('icon'))
u = str(iptv.findtext('uri'))
t = str(iptv.findtext('type'))
tvlist.append({'name':n, 'icon':i, 'type':t, 'uri':u})
return tvlist
示例12: parseStreamList
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def parseStreamList(self):
tvlist = []
tree = ElementTree()
tree.parse(self.xml)
for iptv in tree.findall("iptv"):
n = str(iptv.findtext("name"))
i = str(iptv.findtext("icon"))
u = str(iptv.findtext("uri"))
t = str(iptv.findtext("type"))
tvlist.append({"name": n, "icon": i, "type": t, "uri": self.parseStreamURI(u)})
return tvlist
示例13: run
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def run(self):
path = os.path.join(constant.profile['APPDATA'], u'FileZilla')
if os.path.exists(path):
pwd_found = []
for file in [u'sitemanager.xml', u'recentservers.xml', u'filezilla.xml']:
xml_file = os.path.join(path, file)
if os.path.exists(xml_file):
tree = ElementTree(file=xml_file)
if tree.findall('Servers/Server'):
servers = tree.findall('Servers/Server')
else:
servers = tree.findall('RecentServers/Server')
for server in servers:
host = server.find('Host')
port = server.find('Port')
login = server.find('User')
password = server.find('Pass')
# if all((host, port, login)) does not work
if host is not None and port is not None and login is not None:
values = {
'Host': host.text,
'Port': port.text,
'Login': login.text,
}
if password:
if 'encoding' in password.attrib and password.attrib['encoding'] == 'base64':
values['Password'] = base64.b64decode(password.text)
else:
values['Password'] = password.text
if values:
pwd_found.append(values)
return pwd_found
示例14: run
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def run(self):
pwd_found = []
for xml_file in homes.get(file=[
os.path.join(d, f)
for d in ('.filezilla', '.config/filezilla')
for f in ('sitemanager.xml', 'recentservers.xml', 'filezilla.xml')
]):
if os.path.exists(xml_file):
tree = ElementTree(file=xml_file)
servers = tree.findall('Servers/Server') if tree.findall('Servers/Server') else tree.findall(
'RecentServers/Server')
for server in servers:
host = server.find('Host')
port = server.find('Port')
login = server.find('User')
password = server.find('Pass')
if host is not None and port is not None and login is not None:
values = {
'Host': host.text,
'Port': port.text,
'Login': login.text,
}
if password is not None:
if 'encoding' in password.attrib and password.attrib['encoding'] == 'base64':
values['Password'] = base64.b64decode(password.text)
else:
values['Password'] = password.text
pwd_found.append(values)
return pwd_found
示例15: dofindcontains
# 需要导入模块: from xml.etree.cElementTree import ElementTree [as 别名]
# 或者: from xml.etree.cElementTree.ElementTree import findall [as 别名]
def dofindcontains(self, original_request, collection, match, label=""):
hresult = ""
uri = collection[0]
req = request(self.manager)
req.method = "PROPFIND"
req.host = original_request.host
req.port = original_request.port
req.ruris.append(uri)
req.ruri = uri
req.headers["Depth"] = "1"
if len(collection[1]):
req.user = collection[1]
if len(collection[2]):
req.pswd = collection[2]
req.data = data(self.manager)
req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:getetag/>
</D:prop>
</D:propfind>
"""
req.data.content_type = "text/xml"
result, _ignore_resulttxt, response, respdata = self.dorequest(req, False, False, label="%s | %s" % (label, "FINDNEW"))
if result and (response is not None) and (response.status == 207) and (respdata is not None):
try:
tree = ElementTree(file=StringIO(respdata))
except Exception:
return hresult
request_uri = req.getURI(self.manager.server_info)
for response in tree.findall("{DAV:}response"):
# Get href for this response
href = response.findall("{DAV:}href")
if len(href) != 1:
return False, " Wrong number of DAV:href elements\n"
href = href[0].text
if href != request_uri:
_ignore_result, respdata = self.doget(req, (href, collection[1], collection[2],), label)
if respdata.find(match) != -1:
break
else:
href = None
return href