2010-02-01 132 views
0

我有一个项目,其中包含大量的XML文件,我正在复制并粘贴到Emacs中进行编辑。这一切都在一条线上,所以我想要一个工具来制作每行一个XML元素。是否有我可以使用的Emacs功能?我想我甚至会解决一个与Emacs很好地集成的命令行工具,但这并不理想。在Emacs中格式化XML

回答

1

我已经使用xml-parse多年来重新格式化XML。你想要的特定命令是xml-reformat-tags。希望有所帮助!

5

您正在查找的功能通常称为“漂亮打印”。有一个在Emacs的一个漂亮的打印功能:

http://sinewalker.wordpress.com/2008/06/26/pretty-printing-xml-with-emacs-nxml-mode/

此外,看一看this SO question它还有其他选择。

+1

什么也可以做的是将其通过xmllint(中的libxml2软件包的一部分)。 – amphetamachine 2010-02-01 23:14:51

+0

你碰巧知道记事本++使用什么?我很确定它是一个库,而不是一个简单的函数。 – Anthony 2010-02-01 23:19:50

+0

是的,“漂亮的印刷品”是我需要找到这篇文章的术语。然而,nXml模式在开始缩进和其他内容之前“花费了大约半分钟的时间”来解析我的文档。我可以关闭它吗? xml模式对我来说工作起来要快得多。 – User1 2010-02-01 23:19:56

2

我写了一个小elisp的功能,即依靠xmllint从libxml的:

(defun format-xml() 
    (interactive) 
    (shell-command-on-region 1 (point-max) "xmllint --format -" (current-buffer) t) 
) 
+0

太棒了!比使用nxml重新格式化更快。 – Chopmo 2010-05-19 23:08:05

+0

是的,这真是太棒了! – 2011-07-06 12:53:14