xml - 删除emacs中某种类型的所有标签

标签 xml regex emacs

我有一个 XML 文件。光是读到这里,我就知道你很兴奋。

现在我想完全删除其中的一些标签:

<qwerty option=1>
<nmo>sdfsdf</nmo>
<blue>sdfsdf</blue>
</qwerty>

这是一个大文件。如何删除所有标签 nmoblue,包括它们的内容?在 Emacs 或我的 mac 可以使用的任何其他程序中。

最佳答案

Emacs 具有导航符号表达式或“sexps”的命令。在 xml-mode , sexp 导航命令对标签起作用。您可以导航到开口 < , 按 C-M-f ( forward-sexp ) 导航到标签的末尾,或按 C-M-k ( kill-sexp ) 终止它。变量 nxml-sexp-element-flag控制是到达开始标记的末尾(默认)还是结束标记。我更喜欢后者。

要删除这些标签,首先设置 nxml-sexp-element-flag使用 M-x 自定义变量 nxml-sexp-element-flag。接下来搜索你要杀的标签,把点移到开头<然后按 C-M-k。将这一切封装在一个宏中,并重复整个文件,直到搜索失败。

关于xml - 删除emacs中某种类型的所有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15032639/

相关文章:

Python正则表达式重复

emacs - 按句子将段落分解为组织项目符号的函数

sql-server - SSIS 中的 XML 列具有字节顺序标记

.net - 为什么我的 XmlReader 会返回一个空字符串?

regex - 将句子分成词和尾标

Emacs (Multi)Term vs Xterm vs Console & TMUX

vim - 与 GUI 文本编辑器相比,Vim/Emacs 提供了哪些具体的生产力提升?

android - 为什么我的 Android 应用程序在更改方向时崩溃?

java - Java中的Xpath - 返回搜索结果标签位置

Python、字符串、unicode 字符