2010-02-01 99 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