ParseError для XML файлов - PullRequest
       0

ParseError для XML файлов

0 голосов
/ 08 апреля 2020

Я получаю ошибку синтаксического анализа при попытке проанализировать мои 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>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...