示例XML doc:
<main>
<this test="500">
<that test="200"/>
</this>
</main>
结果:700
我在本网站上发现的所有现有代码片段都依赖于标签。例如,如果您同时引用“this”和“test”,则只能获得“500”。我希望在整个doc / string中只搜索“test”。
我尝试过(并导致失败)的一些模块是lxml,xml.dom,ElementTree,xmltodict和BeautifulSoup,
答案 0 :(得分:1)
我建议赞成lxml
在python中解析XML。 lxml
具有完整的xpath 1.0支持,xpath是专为查询XML而设计的语言/技术。
一旦你拥有了正确工作的合适工具,你就可以做到这样的事情:
import lxml.etree as et
xml = """<main>
<this test="500">
<that test="200"/>
</this>
</main>"""
doc = et.fromstring(xml)
result = doc.xpath("sum(//@test)")
print(result)
输出
700.0
关于正在使用的xpath的简要说明:
//@test
:在XML文档中的任意位置找到所有test
属性。sum()
:返回参数的总和