Удаление XML-тега через регулярное выражение - PullRequest
2 голосов
/ 04 октября 2010

Привет, я читал некоторые темы по этой теме, но на самом деле мне не удалось найти или придумать адекватное решение (см., Например: Регулярное выражение для удаления тегов XML и их содержимого ).

У меня есть такой xml-тег:

<bla_tag size="100"
         diameter="50"
         ratio="0.2"
         path="/user/home/something.pdf">
</bla_tag>

Цель: иметь регулярное выражение, которое удаляет все, что находится между <bla_tag ...>.

Проблема: значения, подобныеизменение размера и т. д. в каждом из bla_tags (около 1000 bla-тегов в файле).

Неудачная попытка: я попробовал это с: <bla_tag .*?> (?, Чтобы сделать его менее жадным ...).Результат сбоя: был отмечен только <bla_tag, но не содержимое во всей скобке!

Что я делаю не так - или действительно возможно решить эту проблему на основе регулярных выражений (я где-то читал, чтоэто невозможно из-за того, что свойство xml является языком типа 2, можете ли вы это подтвердить?)

1 Ответ

5 голосов
/ 04 октября 2010

Вы хотите прочитать RegEx соответствует открытым тегам, кроме автономных тегов XHTML

Серьезно.

Используйте синтаксический анализатор xml.(Их не сложно использовать, если честно).Обычно они бывают одного из двух вариантов - SAX и DOM, и вы, вероятно, предпочтете SAX.

Мой любимый парсер - expat, но у каждого из них есть свои маленькие тонкости, так что это не всегда один-размер подходит всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...