Notepad++ Select 多个标签中的文本

Notepad++ Select text within multiple tags

希望有人能提供帮助。我有一个很大的 XML 文件需要整理。基本上存在一些我们需要摆脱的换行符。大约有 19,000 个带有文本的“<Location>”标签。有没有办法让 NPP 搜索所有 <Location> 标签,select 直到结束标签并执行连接线?连接线解决了这个问题,但要花一整天的时间来检查每一个。

编辑:抱歉,不要以为我解释得很好!所以基本上这个 XML 文档中存在更多标签,例如:

<AccomRef>
<Code>BT1</Code>
<Location>Sometimes the text in here has line breaks
like this</Location>
</AccomRef>

我想理想情况下,我需要在每个结束标记后使用中断保持标记整洁,但只需确保所有位置文本都没有中断地连接在一起。我试过 CTRL+A > CTRL+J 但这会使文件难以阅读!希望这更有意义。

我假设每个 <Location> 标签都有一个匹配的 </Location> 结束标签,如下所示:

<Location>something</Location>
<Location>another</Location>
<Location>and again</Location>

你想去

<Location>something</Location><Location>another</Location><Location>and again</Location>

如果是,请转到 Replace 对话框 (Ctrl + H) 并在 Search Mode 中选择 Extended。 输入 </Location>\r\n 作为 Find 文本并输入 </Location> 作为 Replace 文本。

这将用结束标记替换每个结束标记 + 换行符。

不过,在对您的实际数据进行操作之前,我会在示例文件上进行尝试!

编辑:既然你已经澄清了你的问题,我的回答并没有多大帮助。

有一个插件 "XML Tools"。您可以使用插件管理器安装它。它提供了几个选项:

  • 线性化
  • 美化有无换行符

你可以试试看。

正如 Lars 提到的那样,有一个插件,它很棒。但是据了解你的问题,你遇到过这样的情况

<location>some location</location>
<location>some 
location2</location>
<location>some location3</location>

想拥有这样的东西

<location>some location</location>
<location>some location2</location>
<location>some location3</location>

如果这是你的问题,你可以分两步解决:

1) 将 \r\n 替换为空格

2) 将 </location> 替换为 </location>\r\n

尝试一下:

单击 Ctrl+H

查找内容:(?=<Location>)([^\r\n]+)\R(?!<location>)
替换为:</code></p> <p>确保选中 <code>Regular Expression,然后单击 全部替换