我有一个大型 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>
搜索方式:正则表达式
检查: . 匹配换行符