Я получаю ошибку синтаксического анализа при попытке проанализировать мои xml файлы из папки аннотаций. следующий код генерирует ошибку.
df_anno = []
for fnm in os.listdir(dir_anno):
if not fnm.startswith('.'): ## do not include hidden folders/files
tree = ET.parse(os.path.join(dir_anno,fnm))
row = extract_single_xml_file(tree)
row["fileID"] = fnm.split(".")[0]
df_anno.append(row)
df_anno = pd.DataFrame(df_anno)
maxNobj = np.max(df_anno["Nobj"])
Я попытался использовать файл xml из набора данных SUN, который имеет формат pascal, но я закончил со следующей ошибкой. Кажется, проблема связана с файлом xml, я использовал другие наборы данных с аналогичным форматом xml, и при запуске кода ошибок нет. Я думал, что это потому, что они могут быть пробелами в файле xml. Как можно исправить эту ошибку, чтобы получить код, работающий
Traceback (most recent call last):
File "\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-8f7de14aa672>", line 4, in <module>
tree = ET.parse(os.path.join(dir_anno,fnm))
File "\Anaconda3\lib\xml\etree\ElementTree.py", line 1197, in parse
tree.parse(source, parser)
File "\Anaconda3\lib\xml\etree\ElementTree.py", line 598, in parse
self._root = parser._parse_whole(source)
File "<string>", line unknown
ParseError: not well-formed (invalid token): line 129, column 6
, например, файл xml выглядит следующим образом.
<?xml version="1.0"?>
-<annotation>
<folder> SUN2012pascalformat </folder>
<filename> sun_aaaatuxrpwrbvtuv.jpg </filename>
-<source>
<database> SUN2012pascalformat </database>
</source>
-<size>
<width> 2448 </width>
<height> 1632 </height>
<depth> 3 </depth>
</size>
<segmented> 0 </segmented>
-<object>
<name> wall </name>
-<bndbox>
<xmin> 3 </xmin>
<ymin> 0 </ymin>
<xmax> 1132 </xmax>
<ymax> 1033 </ymax>
</bndbox>
<truncated> 0 </truncated>
<difficult> 0 </difficult>
</object>
</annotation>