Нужно получить номер строки xml при разборе с использованием beautifulsoup и lxml.
В xml отсутствует корневой тег, поэтому нельзя напрямую использовать дерево элементов XML / lxml. Так что соскоб это с помощью Beautifulsoup. Необходимо сохранить имя файла xml, номер строки, тег xml и его значение во вложенных словарях. Невозможно получить номер строки, пытаясь очистить его с помощью beautifulsoup / lxml. print(linenum)
возвращает None
, но должен возвращать номер строки в файле XML. Есть идеи?
for xml_file in os.listdir("/Users/abc/Documents/test"):
mode_map = defaultdict(list)
with open("/Users/abc/test/"+xml_file) as raw_resuls:
results = BeautifulSoup(raw_resuls, 'lxml')
for element in results.find_all("process"):
attrib = element['mode']
if element.find("value") is not None:
child = element.find("value").text
linenum= element.find("value").sourceline
print(linenum)
mode_map[attrib].append(child)
# print(mode_map)
event_map["process"]=mode_map
file_map[xml_file]=event_map