У меня есть XML, который плохо сформирован, так как я получаю эту ошибку при попытке прочитать XML:
import xml.etree.ElementTree as ET
ET.parse(r'my.xml')
Я получаю приведенную ниже ошибку
ParseError: неправильно сформирован (неверный токен): строка 2034, столбец 317
Итак, я использовал BeautifulSoup
, чтобы прочитать xml по следующему коду:
from bs4 import BeautifulSoup
with open(r'my.xml') as fp:
soup = BeautifulSoup(fp, 'xml')
Если яprint soup
это выглядит так:
<Placemark>
<name>India </name>
<description>Country</description>
<styleUrl>#icon-962-B29189</styleUrl>
</Placemark>
<Placemark>
<name>USA</name>
<styleUrl>#icon-962-B29189</styleUrl>
</Placemark>
<Placemark>
<description>City</description>
<styleUrl>#icon-962-B29189</styleUrl>
</Placemark>
У меня есть более 100 Placemark
тегов и информация в них.Я хочу захватить name
и description
каждого тега и сделать df
с соответствующими столбцами.
Мой код для этого же:
name_tag=[x.text.strip() for x in soup.findAll('name')]
description_tag =[x.text.strip() for x in soup.findAll('description')]
Проблема для некоторыхиз тегов Placemark
У меня нет тега name
или description
.И поэтому я не могу знать, какое имя имеет какое описание.Таким образом, существует несоответствие между именем и описанием из-за отсутствия тегов.
Ожидаемый выходной фрейм данных :
Name Description
India Country
USA
City
В любом случае я могу добиться того же