import xml.etree.ElementTree as ETxml = """<?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 – ElementTree find()/ findall()找不到带命名空间的标签?全部内容,希望文章能够帮你解决python – ElementTree find()/ findall()找不到带命名空间的标签?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)