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
,然后单击 全部替换
希望有人能提供帮助。我有一个很大的 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
,然后单击 全部替换