如何从标记深处的xml文件中提取数据

时间:2016-09-09 01:12:42

标签: python xml

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRecord xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="Record">
  <AvailableCharts>
    <Accelerometer>true</Accelerometer>
    <Velocity>false</Velocity>
  </AvailableCharts>
  <Trics>
    <Trick>
      <EndOffset>PT2M21.835S</EndOffset>
      <Values>
        <TrickValue>
          <Acceleration>26.505801694441629</Acceleration>
          <Rotation>0.023379150593228679</Rotation>
        </TrickValue>
      </Values>
    </Trick>
  </Trics>
  <Values>
    <SensorValue>
      <accelx>-3.593643144</accelx>
      <accely>7.316485176</accely>
    </SensorValue>
    <SensorValue>
      <accelx>0.31103436</accelx>
      <accely>7.70408184</accely>
    </SensorValue>
  </Values>
</ArrayOfRecord>

我只对这个数据中的'accelx'和'accely'值感兴趣,并且需要从中创建一个csv。

更新:当我使用以下内容更改第二行时,下面给出的代码会中断。因此没有显示任何内容;

<ArrayOfRecord xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="Record" xmlns="http://schemas">

以下代码有效:

import xml.etree.ElementTree as etree
tree = etree.parse(r"C:\Users\data.xml")
root = tree.getroot()

val_of_interest = root.findall("./Values/SensorValue")

for sensor_val in val_of_interest:
    print sensor_val.find('accelx').text
    print sensor_val.find('accely').text

0 个答案:

没有答案