python – ElementTree find()/ findall()找不到带命名空间的标签?
发布时间:2021-01-11 23:37:51 所属栏目:Python 来源:互联网
导读:如果我指定命名空间,使用以下代码我希望能够搜索目标标记. import xml.etree.ElementTree as ETxml = ?xml version=1.0 encoding=UTF-8? xyz2:outer xmlns:xyz1=http://www.company.com/url/common/v1
如果我指定命名空间,使用以下代码我希望能够搜索目标标记. import xml.etree.ElementTree as ET xml = """<?xml version="1.0" encoding="UTF-8"?> <xyz2:outer xmlns:xyz1="http://www.company.com/url/common/v1" xmlns:xyz2="http://www.company.com/app/v2" version="9.0" something="false"> <xyz2:inner> <xyz2:target> <xyz1:idType>name</xyz1:idType> <xyz1:id>A Name Here</xyz1:id> </xyz2:target> </xyz2:inner> </xyz2:outer>""" tree = ET.fromstring(xml) print tree[0][0] # <Element '{http://www.company.com/app/v2}target' at 0x7f3c294374d0> tree.find('{http://www.company.com/app/v2}target') # None 无论我做什么,我都无法找到目标标签? 我已经尝试了各种ElementTree实现,包括lxml,据称可以接受{*}命名空间.没有骰子? 解决方法target不是根元素;你应该在前面.//.>>> import xml.etree.ElementTree as ET >>> tree = ET.fromstring(xml) >>> tree.findall('.//{http://www.company.com/app/v2}target') [<Element '{http://www.company.com/app/v2}target' at 0x2d143c8>] (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – hashlib.md5()TypeError:Unicode对象必须在散列
- Python:“subprocess.Popen”检查成功和错误
- 在包含f2py(最小工作示例)的模块中包含已编译的模块?
- 在Django中使用python-social-auth和电子邮件注册复制电子邮
- Python:TypeError:*之后的参数必须是一个序列
- 关于exponents和int的Python问题
- django-forms – 如何使用modelformset_factory创建一个空的
- Python使用metaclass实现Singleton模式的方法
- python – django auth用户截断电子邮件字段
- python – 从scipy.stats … rvs和numpy.random的随机抽取之