如何删除两个XML标记之间的所有字符和行

时间:2014-05-18 12:14:44

标签: xml regex notepad++

我有一个XML文件,我想用Notepad ++修改它。我想要的是删除两个"属性之间的所有字符和行(简称一切)"标签

<properties>
<property>
  <propertyName>controlPanelDemoURL</propertyName>
  <propertyValues>
    <propertyValue>http://domain.com</propertyValue>
  </propertyValues>
</property>
</properties>

它应该是这样的:

<properties>
</properties>

我应该使用什么常规表达(或Notepad ++扩展搜索)?

我已尝试过<properties>.*</properties>,但仅当所有内容都位于一行时才有效。


谢谢l&#39; l&#39; l。现在我意识到我还有其他问题。标记<properties></properties>是主<template></template>标记的一部分。有很多&#34;模板&#34;此xml文件中的项目。在使用<properties>.*</properties>并使用点匹配替换新行后,我删除了所有代码,从第一个到最后一个以及之间的所有其他标记开始。

Simplfied XML文件结构如下所示:

<templates>
<template id="1">
  <id></id>
  <state></state>
  <price></price>
  <type_name></type_name>
  <live_preview_url></live_preview_url>
  <properties>
  <property>
      <propertyName></propertyName>
      <propertyValues>
        <propertyValue></propertyValue>
      </propertyValues>
    </property>
  </properties>
 </template>
 <template id ="2">
  <id></id>
  <state></state>
  <price></price>
  <type_name></type_name>
  <live_preview_url></live_preview_url>
  <properties>
  <property>
      <propertyName></propertyName>
      <propertyValues>
        <propertyValue></propertyValue>
      </propertyValues>
    </property>
  </properties>
 </template>
</templates> 

1 个答案:

答案 0 :(得分:2)

查找

<properties>.*?</properties>

并替换为

<properties></properties>

使用Regular expressions. matches a newline