在 Notepad++ 中删除 XML 节点

在 Notepad++ 中删除 XML 节点

我有一个大型 XML,其结构如下。现在,我想删除节点<tuv xml:lang="en-GB"><seg>CONTENT</seg></tuv>,这样对于每个单元,只保留 de-DE 部分 ( <tuv xml:lang="de-DE"><seg>CONTENT</seg></tuv>)。有没有办法用 Notepad++ 或其他工具来做到这一点?我不太喜欢编码,所以越简单越好。

我拥有的:

<tu tuid="ID_0">
<tuv xml:lang="en-GB">
<seg>Hello!</seg>
</tuv>
<tuv xml:lang="de-DE">
<seg>Hallo!</seg>
</tuv>
</tu>
<tu tuid="ID_1">
<tuv xml:lang="en-GB">
<seg>This is a test content! :)</seg>
</tuv>
<tuv xml:lang="de-DE">
<seg>Das ist ein Testinhalt! :)</seg>
</tuv>
</tu>
<tu tuid="ID_2">
<tuv xml:lang="en-GB">
<seg>All your base are belong tu us ...</seg>
</tuv>
<tuv xml:lang="de-DE">
<seg>Och nö, echt jetzt?</seg>
</tuv>
</tu>

我想要的是:

<tu tuid="ID_0">
<tuv xml:lang="de-DE">
<seg>Hallo!</seg>
</tuv>
</tu>
<tu tuid="ID_1">
<tuv xml:lang="de-DE">
<seg>Das ist ein Testinhalt! :)</seg>
</tuv>
</tu>
<tu tuid="ID_2">
<tuv xml:lang="de-DE">
<seg>Och nö, echt jetzt?</seg>
</tuv>
</tu>

答案1

在 NotePad++ 中打开替换对话框并指定:

找什么:<tuv xml:lang="en-GB">.*?</tuv>

用。。。来代替:

然后将搜索模式设置为“正则表达式”,并勾选“.匹配换行符”框。

全部替换现在应该会删除所有 en-GB 块。注意:这里的技巧在于 * 后面的 ?。它指示正则表达式不贪婪。

答案2

Ctrl+H(替换...)

找什么:<tuv xml:lang="en-GB">.*?</tuv>

搜索方式:正则表达式

检查: . 匹配换行符

相关内容