python – ElementTree find()/ findall()找不到带命名空间的标签?
发布时间:2021-01-12 04:03:42 所属栏目: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 – 根据另一列pandas数据框提取列值
- python – 整数除法:对于所有整数a,b,// b == int(a / b)为
- Python属性未设置
- python – 逐行文件处理,for-loop vs with
- Django ForeignKey,null = True,内连接和左外连接
- python – ElementTree find()/ findall()找不到带命名空间
- python – numpy.array的部分内容
- python – 在Tkinter中动态创建菜单. (lambda表达式?)
- Django如何在manage shell中查看查询
- 一个使用SimpleHTTPServer和SocketServer的简单的python服务
