简体   繁体   中英

xml prasing in python 3 errors (xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 2)

import xml.etree.cElementTree as et
tree = et.parse(xml_file)
root = tree.getroot()

appletree = et.fromstring(xml_file)
#

error: xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 2

I am quite new to the xml format i tryed multible ways of extraxting the x, y and t variable. i have tryed it with looping throe the steps but that methode is giving me some problems. But while i was looking at the documantation and i found the fromsting function this seemed to be the most ideal way of extracting data but it is spitting out errors. the Xml file is placed underneath.(i cut the end of it to make it complay with the question requerements

 <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Worksheet ss:Name="kinovea 001"> <Table x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="60"> <Row> <Cell> <Data ss:Type="String" /> </Cell> </Row> <Row> <Cell ss:MergeAcross="2" ss:StyleID="track-title"> <Data ss:Type="String">Track</Data> </Cell> </Row> <Row> <Cell ss:StyleID="header"> <Data ss:Type="String">Label :</Data> </Cell> <Cell ss:MergeAcross="1" ss:StyleID="data"> <Data ss:Type="String">Label</Data> </Cell> </Row> <Row> <Cell ss:MergeAcross="2" ss:StyleID="header"> <Data ss:Type="String">Coords (x,y:px; t:time)</Data> </Cell> </Row> <Row> <Cell ss:StyleID="header"> <Data ss:Type="String">x</Data> </Cell> <Cell ss:StyleID="header"> <Data ss:Type="String">y</Data> </Cell> <Cell ss:StyleID="header"> <Data ss:Type="String">t</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:00</Data> </Cell> </Row> <Row> <Cell> <Data ss:Type="String" /> </Cell> </Row> <Row> <Cell ss:MergeAcross="2" ss:StyleID="track-title"> <Data ss:Type="String">Track</Data> </Cell> </Row> <Row> <Cell ss:StyleID="header"> <Data ss:Type="String">Label :</Data> </Cell> <Cell ss:MergeAcross="1" ss:StyleID="data"> <Data ss:Type="String">stracker eeeen</Data> </Cell> </Row> <Row> <Cell ss:MergeAcross="2" ss:StyleID="header"> <Data ss:Type="String">Coords (x,y:px; t:time)</Data> </Cell> </Row> <Row> <Cell ss:StyleID="header"> <Data ss:Type="String">x</Data> </Cell> <Cell ss:StyleID="header"> <Data ss:Type="String">y</Data> </Cell> <Cell ss:StyleID="header"> <Data ss:Type="String">t</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:00</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-11.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:04</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-22.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">1.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:08</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-32.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-3.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:12</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-42.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-3.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:16</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-54.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-2.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:20</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-64.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-1.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:24</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-75.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-1.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:28</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-86.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-1.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:32</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-96.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">-1.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:36</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-108.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">2.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:40</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-118.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">5.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:44</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-126.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">10.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:48</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-132.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">17.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:52</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-132.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">27.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:56</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-128.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">37.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:60</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-118.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:64</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-104.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:68</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-86.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">43.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:72</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-65.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">35.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:76</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-40.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">23.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:80</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">4.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">71.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:84</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">22.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:88</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">42.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:92</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">58.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:00:96</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">66.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:00</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">67.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:04</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">62.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:08</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">57.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:12</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">50.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:16</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">40.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:20</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">30.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:24</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">21.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:28</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">10.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:32</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">0.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:36</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-10.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">47.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:40</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-20.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">16.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:44</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-30.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">13.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:48</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-41.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">13.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:52</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-52.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">13.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:56</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-62.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">14.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:60</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-72.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">14.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:64</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-83.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">14.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:68</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-94.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">14.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:72</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-104.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">15.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:76</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-113.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">16.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:80</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-121.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">19.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:84</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-126.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">22.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:88</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-126.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">31.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:92</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-122.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">41.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:01:96</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-114.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">48.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:00</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-101.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">49.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:04</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-84.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">49.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:08</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-64.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">43.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:12</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">-41.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">31.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:16</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">8.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">85.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:20</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">18.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:24</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">38.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:28</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">56.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">43.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:32</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">66.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:36</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">68.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:40</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">64.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:44</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">58.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:48</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">53.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:52</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">46.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">43.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:56</Data> </Cell> </Row> <Row> <Cell ss:StyleID="data"> <Data ss:Type="Number">36.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="Number">45.00</Data> </Cell> <Cell ss:StyleID="data"> <Data ss:Type="String">0:00:02:60</Data> </Cell> </Row> 

The function et.fromstring(xml_file) is for reading a String that has the XML File format. Not for reading the File. So it ist necessary to parse the File with

parser = etree.XMLParser()
tree = etree.parse(xml_file,parser)

After that you have your tree in memory and you can read the values of the file. To get the Root:

root = tree.getroot()

And then you can loop over each entry to get the values.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM