Я пытаюсь использовать регулярные выражения в возвышенном 3, чтобы удалить все содержимое между двумя строками, XML-файлом.Удалить все содержимое между двумя строками с помощью регулярных выражений
Пусть это мое содержание:
<Body name="ground">
<mass>0</mass>
<mass_center> 0 0 0</mass_center>
<inertia_xx>0</inertia_xx>
<inertia_yy>0</inertia_yy>
<inertia_zz>0</inertia_zz>
<inertia_xy>0</inertia_xy>
<inertia_xz>0</inertia_xz>
<inertia_yz>0</inertia_yz>
<!--Joint that connects this body with the parent body.-->
<Joint />
<VisibleObject>
<!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
<GeometrySet>
<objects />
<groups />
</GeometrySet>
<!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
<scale_factors> 1 1 1</scale_factors>
<!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
<transform> -0 0 -0 0 0 0</transform>
<!--Whether to show a coordinate frame-->
<show_axes>false</show_axes>
<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
<display_preference>4</display_preference>
</VisibleObject>
<WrapObjectSet>
<objects />
<groups />
</WrapObjectSet>
</Body>
Теперь предположим, что я хочу, чтобы удалить все содержимое между <VisibleObject>
и </VisibleObject>
оставить только:
<Body name="ground">
<mass>0</mass>
<mass_center> 0 0 0</mass_center>
<inertia_xx>0</inertia_xx>
<inertia_yy>0</inertia_yy>
<inertia_zz>0</inertia_zz>
<inertia_xy>0</inertia_xy>
<inertia_xz>0</inertia_xz>
<inertia_yz>0</inertia_yz>
<!--Joint that connects this body with the parent body.-->
<Joint />
<VisibleObject>
</VisibleObject>
<WrapObjectSet>
<objects />
<groups />
</WrapObjectSet>
</Body>
Есть несколько подобных потоков и проблемы, к вышеизложенному, но ни один из них не работает особенно хорошо (или вообще) для этой проблемы.
Любая помощь была бы очень признательна.
Как насчет поиска '() [\ S \ s] *? ( VisibleObject>)', Заменить '$ 1 $ 2'? –
sln
С Notepad ++ вы можете использовать XSLT-преобразования и легко изменять любой XML. Не уверен, поддерживает ли Sublime Text изменение XML-файлов с помощью XSLT. –
Действительно, как упоминает @ WiktorStribiżew, это можно легко обработать с помощью XSLT, выполняющего преобразование идентичности, а затем перезаписывая элемент ''. Кроме того, настоятельно рекомендуется не использовать регулярное выражение в [X/HTML-документах] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags). –
Parfait