根据特定的内部标签查找Xml标签

问题描述

我有一个包含标签的xml文件。我想从包含内部<value>标记文件删除所有<isActive>标记。我正在使用正则表达式尝试在Notepad ++中查找并替换它。

我创建了此正则表达式,无法继续进行操作。

<value>.*?</value>

下面是示例xml文件`

<value>
                <fullName>CMT - AAPAC - ANZ - Telstra - Media</fullName>
                <default>false</default>
                <label>CMT - AAPAC - ANZ - Telstra - Media</label>
            </value>
            <value>
                <fullName>CMT - AAPAC - ASEAN - C&amp;M - Comms</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>CMT - AAPAC - ASEAN - C&amp;M - Comms</label>
            </value>

删除文件输出应如下所示

<value>
                <fullName>CMT - AAPAC - ANZ - Telstra - Media</fullName>
                <default>false</default>
                <label>CMT - AAPAC - ANZ - Telstra - Media</label>
            </value>

解决方法

您可以使用

FindWhat (?s)<value>(?:(?!<value>).)*?<isActive>.*?</value>
替换为 :(空字符串)

请参见regex demo online。详细信息:

  • (?s)- .匹配换行符模式
  • <value>-字符串
  • (?:(?!<value>).)*?-任何不以value子字符串开头的字符,零个或多个出现,但尽可能少
  • <isActive>-字符串
  • .*?-零个或多个字符,尽可能少
  • </value>-一个字符串。

查看演示和设置:

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...