У меня есть файл «XML-файл», который имеет некоторые нежелательные символы в немPython нежадное регулярное выражения, чтобы очистить XML
<data>
<tag>blar </tag><tagTwo> bo </tagTwo>
some extra
characters not enclosed that I want to remove
<anothertag>bbb</anothertag>
</data>
Я думал следующее нежадной подмена удалят символы, которые не были должным образом облицованными в <sometag></sometag>
re.sub("</([a-zA-Z]+)>.*?<","</\\1><",text)
^ ^^ ^ text is the xml txt.
remember tag, | | put tag back without and reopen next tag
read everything until the next '<' (non-gready)
Это регулярное выражение, кажется, только чтобы найти положение, обозначенное с [[]]
в </tag>[[]]<tagTwo>
Что я делаю неправильно?
EDIT: мотивация на этот вопрос был решен (см комментарии, у меня была шальная & в файле XML, который вызывает не разобрать - это не имеет ничего общего с персонажами, которые я хочу Удалить). Тем не менее, мне все еще интересно узнать, возможно ли регулярное выражение (и что было не так с моей попыткой), и поэтому я не исключаю вопрос.
@cwallenpoole: Я не пытаюсь разобрать XML. Я пытаюсь очистить XML-файл, чтобы я мог его принять парсером. Любые предложения, не связанные с регулярным выражением, о том, как это сделать, приветствуются – Tom
Какой парсер этого не принимает? –
@ IgnacioVazquez-Abrams 'xml.dom.mindom' Я редактировал вопрос, чтобы включить backtrace – Tom