Мне нужно проанализировать некоторые файлы журналов, содержимое которых похоже на XML, но оно не имеет root и не начинается с версии? xml.
Формат файла журнала:
2019-09-12 15:30:02.137 (162,<ThreadPool> ) Info Sending:
<Keepalive />
2019-09-12 15:30:03.512 (65 ,Estate ) DebugInfo Incoming buffer has 292 bytes
<Outcome>
<ItemId>373011</ItemId>
<AreaId>232</AreaId>
<CarrierId>131</CarrierId>
<AResult>
<Measured>Ok</Measured>
</AResult>
<TimeStamp>2019-09-12T19:30:02Z</TimeStamp>
</Outcome>
Поскольку это файл .log Могу ли я использовать для этого библиотеку ElementTree? Мне нужно проверить Измерено OK для другого идентификатора элемента.
Я пробовал эти два, ни один из них не работал: (1)
import xml.etree.ElementTree as ET
tree = ET.parse(r'C:\lovely\Libraries\site.log')
root = tree.getroot()
(2)
import xml.etree.ElementTree as ET
import re
with open('C:\lovely\Libraries\site.log') as f:
xml = f.read()
tree = ET.fromstring(re.sub(r"(<\?xml[^>]+\?>)", r"\1<root>", xml) + "</root>")