Patrick Loeber如何确定Apple Health数据XML树存在'Workout'元素?
怎么确定Apple Health XML里的'Workout'元素?
作者确定'Workout'是XML元素的途径主要有这几个:
直接查看原始XML文件
Apple Health导出的是export.xml文件,用普通文本编辑器打开后,直接搜索<Workout>就能定位到对应的元素。教程作者写代码前肯定先手动扫过这份文件的结构,确认了这个标签的存在。用代码递归遍历所有标签
你之前只看了root的直接子节点,但Workout可能嵌套在更深的层级里(或者虽然是直接子节点,但你没遍历全)。可以用递归代码收集所有唯一标签,就能看到它:import xml.etree.ElementTree as ET tree = ET.parse('export.xml') root = tree.getroot() unique_tags = set() def walk_xml(node): unique_tags.add(node.tag) for child in node: walk_xml(child) walk_xml(root) print(sorted(unique_tags))运行后输出的标签列表里肯定有
Workout,这也是作者可能用过的快速确认方式。参考Apple官方文档
Apple的HealthKit框架文档里明确说明了导出XML的结构定义,包括各类健康数据对应的标签名,作者可能查过官方文档来验证Workout标签的合法性。
另外,你之前用root.iter('Workout')能拿到结果,其实已经侧面证明这个标签存在——如果XML里没有这个元素,返回的列表会是空的。
内容的提问来源于stack exchange,提问作者VectorLue
相关产品推荐
相关产品推荐

