【问题标题】:Possible to search and replace a specific XML tag with children in Notepad++可以在 Notepad++ 中搜索和替换特定的 XML 标记
【发布时间】:2015-04-02 17:53:43
【问题描述】:

我有一个 XML 脚本,其中几乎每个项目都包含一个我想要删除的现在多余的标签<atc:acceptedStateFlashParams>。下面是代码示例。如何在 Notepad++ 中删除标签及其中的所有内容?

我按照Remove specified tags in XML (notepad++) 尝试了[\t ]*<atc:acceptedStateFlashParams>.*</atc:acceptedStateFlashParams>,但似乎无法正常工作。

干杯。

        <atc:aircraft atc:idx="C63" atc:type="B747">
            <atc:flightpath>
                <atc:point atc:x='8.2338'   atc:y='48.9288'     />
            </atc:flightpath>
            <atc:acceptedStateFlashParams>
                <atc:flashItem>fl</atc:flashItem>
                <atc:colour>red</atc:colour>
            </atc:acceptedStateFlashParams>
        </atc:aircraft>

【问题讨论】:

    标签: xml notepad++


    【解决方案1】:

    您需要选中替换对话框中. matches newline 的复选框。

    见下图。您在问题中提到的正则表达式工作正常。

    对于您的后续问题,您正在寻找的是前瞻正则表达式:

    <atc:acceptedStateFlashParams>(.(?!<atc:acceptedStateFlashParams))*</atc:acceptedStateFlashParams>
    

    您需要检查您的. 是否与您要替换的标签不匹配。相关阅读here

    【讨论】:

    • 非常感谢,现在感觉有点愚蠢。一个后续问题,当我在包含一大堆它们的 XML 文件中运行它时,由于某种原因,它几乎也选择了每个 &lt;atc:aircraft&gt; 标记。 .* 规则似乎过于宽松,并且在第一个 &lt;atc:acceptedStateFlashParams&gt; 和最后一个 &lt;/atc:acceptedStateFlashParams&gt; 之间选择一切有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 2011-07-01
    • 2023-03-24
    • 2020-09-14
    • 2018-07-04
    • 2012-07-08
    • 2015-08-01
    • 2013-10-18
    相关资源
    最近更新 更多