本文整理汇总了Python中lxml.etree.ElementTree.iter方法的典型用法代码示例。如果您正苦于以下问题:Python ElementTree.iter方法的具体用法?Python ElementTree.iter怎么用?Python ElementTree.iter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lxml.etree.ElementTree
的用法示例。
在下文中一共展示了ElementTree.iter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: validate
# 需要导入模块: from lxml.etree import ElementTree [as 别名]
# 或者: from lxml.etree.ElementTree import iter [as 别名]
def validate(self, data, realm_id, ris):
context = {}
context['is_admin'] = True
context['query_string'] = {}
context['query_string']['service_id'] = realm_id
context['interface'] = 'adminurl'
context['path'] = ""
idp_info = self.catalog_api.list_endpoints(context)
unique_attribute = idp_info["endpoints"][0].get("identifier_attribute",None)
resp = urlparse.parse_qsl(data)
k, v = resp[0]
try:
resp = base64.b64decode(v)
#print resp;
resp = ElementTree(fromstring(resp))
except TypeError:
resp = base64.b64decode(v.replace(" ", "+"))
#print resp;
resp = ElementTree(fromstring(resp))
atts = {}
names = []
for cond in resp.iter("{urn:oasis:names:tc:SAML:2.0:assertion}Conditions"):
expires = cond.attrib.get("NotOnOrAfter")
for name in resp.iter("{urn:oasis:names:tc:SAML:2.0:assertion}NameID"):
names.append(name.text)
for att in resp.iter("{urn:oasis:names:tc:SAML:2.0:assertion}Attribute"):
ats = []
for value in att.iter("{urn:oasis:names:tc:SAML:2.0:assertion}AttributeValue"):
ats.append(value.text)
atts[att.get("Name")] = ats
if unique_attribute is not None and atts.get(unique_attribute, None) is not None:
names = atts.get(unique_attribute)
# print "name : ", names[0]
# print "expires: ", expires
# print "issuers: ", self.check_issuers(data, atts, realm_id)
return names[0], expires, self.check_issuers(data, atts, realm_id)