【问题标题】:Find Xml tags based on specific inner tag根据特定的内部标签查找 Xml 标签
【发布时间】:2020-12-20 06:41:03
【问题描述】:

我有一个包含标签的 xml 文件。我想从包含内部<isActive> 标记的文件中删除所有<value> 标记。我正在尝试在 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>

【问题讨论】:

    标签: regex xml notepad++


    【解决方案1】:

    你可以使用

    FindWhat(?s)&lt;value&gt;(?:(?!&lt;value&gt;).)*?&lt;isActive&gt;.*?&lt;/value&gt;
    替换为:(空字符串)

    请参阅regex demo online。详情:

    • (?s) - . 匹配换行符 模式开启
    • &lt;value&gt; - 一个字符串
    • (?:(?!&lt;value&gt;).)*? - 任何字符,零次或多次出现,但尽可能少,不会开始 value 子字符串
    • &lt;isActive&gt; - 一个字符串
    • .*? - 任何零个或多个字符,尽可能少
    • &lt;/value&gt; - 一个字符串。

    查看演示和设置:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 2023-02-03
      • 2017-02-13
      • 2014-02-10
      相关资源
      最近更新 更多