удаление нескольких тегов в SGML - PullRequest
0 голосов
/ 09 сентября 2010

у меня есть файл sgml вроде

<p><p><data>sdlksdskdmskdmsamdakmdksam<p></data>...

У меня вопрос, как удалить один тег <p> и сохранить еще один нетронутым ... какое регулярное выражение будет изменяемым ......

1 Ответ

1 голос
/ 23 мая 2011

Если ваш SGML таков, что он может быть обработан как XML, то XProc - хорошая технология для такого рода вещей, с одним шагом, таким как:

<p:unwrap match="p[parent::p]"/>

(Предполагается, что вы хотите удалить все вложенные элементы p, пока p никогда не обернет себя).

Вы определенно не хотите обрабатывать SGML / XML с помощью регулярных выражений, если только вы не уверены на 100%, что будете иметь дело с подмножеством, которое имеет определенную четко определенную лексическую форму. Подумайте, например, как вы будете обрабатывать комментарии с помощью регулярного выражения:

<p><!-- <p> commented out--><foo><p/><p/></foo></p>

!!

...