Wie gehe ich beim Parsen einer XML-Datei mit xmlns-Werten um?
Ich habe das folgende Spielzeugbeispiel einer XML-Datei. Ich habe Tausende davon. Ich habe Probleme beim Parsen dieser Datei.
Sehen Sie sich den Text in der zweiten Zeile an. Alle meine Originaldateien enthalten diesen Text. Wenn ich @ lösci:type="Record" xmlns="http://schemas.datacontract.org/Storage"
aus der zweiten Zeile (unter Beibehaltung des restlichen Textes) kann ich @ erhaltaccelx
undaccely
Werte mit dem unten angegebenen Code.
Wie kann ich diese Datei mit dem Originaltext analysieren?
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRecord xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="Record" xmlns="http://schemas.datacontract.org/Storage">
<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>
Code zum Parsen der Daten:
import lxml.etree as etree
tree = etree.parse(r"C:\testdel.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
Ich habe hier eine verwandte Frage gestellt:Wie man Daten aus einer XML-Datei extrahiert, die sich tief im Tag befindet
Vielen Dan