Я бы хотел проанализировать «псевдо» XML-файл, определить начальные и конечные «теги», распечатать теги + текст между ними и повторить его через весь XML-файл
Вот пример "псевдо" XML-файла:
<?xml version='1.0' standalone='yes'?>
<config lastObjectId='4414'>
<Agent Host='us.com'
User='PLCR1'
lastModifiedDate='2014-08-01'>
</Agent>
</config>
- Начальный тег для идентификации:
"<Agent Host='us.com'"
- Конечный тег для идентификации -
"</Agent>"
Я пробовал использовать различные регулярные выражения для соответствия всему блоку, однако они строго / фиксированы для количества строк, содержащихся в блоке XML, и пока недостаточно хороши.
Примечание: я говорю, что это псевдо XML, так как все <Agent Host='us.com'
отформатированы таким образом, без " > "
Regex
(.*Agent.*)((.*\n){1,3})(.*Agent.*)
Затем я попытался использовать «re.match», но я не нашел способа объединить оператор if, чтобы встретить начальный и конечный тег.
По сути, я бы сказал, что моя проблема в операторе if и регулярном выражении.
import re
xmlfile = open("20190211", "r")
output = open("output1.txt", "w")
counter = 0
for line in xmlfile:
if re.match(".*Agent.*us.*",line):
print (line , file = output)
counter += 1
print ("Count: %s"% (counter) ,file =output)
output.close()
Я ожидал бы сопоставить и напечатать на файле «блок» XML, идентифицируемый начальным и конечным тегом.
<Agent Host='us.com'
User='PLCR1'
lastModifiedDate='2014-08-01'>
</Agent>
А затем просмотрите оставшуюся часть файла и найдите другие.