如何在Notepad++中格式化XML?

2066

我有Notepad++,并且我有一些非常长的XML代码。当我将其粘贴到Notepad ++中时,会出现一长串代码(不易阅读和处理)。

我想知道是否有一个简单的方法来使文本易读(易读是指正确缩进的代码)。

我可以手动完成,但我希望有一个永久性的解决方案,因为我已经遇到了这种情况多次。我相信有一个方法可以做到这一点,因为我在几年前做过一次,也许是用Visual Studio或其他编辑器,我记不清了。

但是Notepad++可以实现吗?


3
在最新版本中配置XMLTools有些棘手。在Windows 10上,我已经成功地配置了Notepad++ V6.6.8 版本的XMLTools 2.4.7。从此链接下载最新插件并按照install.txt中的指示操作> https://notepad-plus-plus.org/community/topic/125/plugin-update-xmltools-2-4-7。 - S.Roshanth
1
当前64位版本的解决方案:https://superuser.com/q/1239935/333622 - Raidri
2
@S.Roshanth 在最新的64位Notepad++ 8.x版本中似乎已经解决了。只需使用“插件”->“插件管理器”,搜索XMLTools并在那里安装即可。格式化菜单选项将出现在“插件”->“XML工具”中。 - Shiv
23个回答

2871

尝试插件-> XML工具 -> 美化打印(libXML)或(仅限XML - 带有换行符 Ctrl + Alt + Shift + B

您可能需要使用插件管理器安装XML工具才能在菜单中获得此选项。

根据我的经验,如果文件完全正确形成,则libXML会提供良好的输出。


670
如果您在插件下找不到XML工具,请从“插件”>“插件管理器”>“显示插件管理器”中安装它。 - ala
34
如果你在尝试使用这个插件时遇到了“内容中检测到错误”的错误,请尝试使用XML工具->立即检查XML语法。我曾经遇到过一个问题,其中编码被指定为UTF-16,但实际上是UTF-8。更改XML文件中的编码属性可以解决问题。 - Mirza Dobric
159
如果你使用的插件管理器无法找到XML工具,可能是因为你在工作中使用了代理服务器。你可以从这里下载它:http://sourceforge.net/projects/npp-plugins/files/XML%20Tools/,然后将XMLTools.dll复制到插件目录,将其余的四个dll文件复制到Notepad++根目录。请注意不要改变原有的意思。 - Amit Naidu
16
如果您找不到任何插件,请前往“更新”并更新您的插件管理器。 - Surasin Tancharoen
38
如果您没有插件管理器插件,可以从这里获取:https://github.com/bruderstein/nppPluginManager/releases - Chris W
显示剩余20条评论

159

您需要从插件菜单项中安装XML工具→ 插件管理...出现插件管理对话框,然后滚动到可用插件的底部并选中XML工具,安装它,然后按下Ctrl + Alt + Shift + B或上方显示的XML工具选项。


134
Step 1: Install XML Tools plugin
Step 2: Format ....completed

输入图像描述


2
非常好的答案,但是我没有“插件管理器” o_O 有人可以帮忙吗?它被删除了吗? - fl0w
4
适用于我。最新版本的Notepad++有插件管理器而不是插件管理器。 - Jayani Sumudini

45

尝试使用TextFX → TextFX Html Tidy → Tidy:重新缩进XML

如果您无法在Eclipse中尝试,请右键单击源代码并进行正确的缩进。


2
谢谢您的回答,但我在我的TextFX Html Tidy菜单中找不到Tidy:重新缩进XML。您能告诉我我错过了什么吗? - happyhardik
4
如果你没有全局的“TextFX”选项,那么你需要安装名为TextFX的插件。但这还不够,显然6.x版本也缺少libtidy.dll下载,所以你必须经过一些麻烦才能获取它。然后,你将拥有一个Tidy:重新缩进XML选项(我认为)。 - rogerdpack
1
我有这个选项,但它没有任何作用(也没有出现错误信息)。 - Danubian Sailor
@DanubianSailor 我也遇到了同样的问题。我不得不尝试使用XML工具,并找到其中一个格式选项可行。 - Shiv
1
我对TidyXML的主要问题是,对于超过一兆或两兆的文件来说,它非常缓慢。 - T.S
显示剩余2条评论

41

插件 -> XML 工具 -> 美化打印 (libXML) 或 Ctrl+Alt+Shift+B

您可能需要安装插件:

插件 > 插件管理器 > 显示插件管理器

如果您在代理后面,请从这里下载。

然后将 XMLTools.dll 复制到插件目录和外部库(四个 dll 文件)复制到 Notepad++ 根目录下。


22

以下是可用于Notepad++的大部分插件,用于格式化XML代码。

  • UniversalIndentGUI
    (我推荐使用此插件)

在插件管理器中启用“文本自动更新”-> UniversalIndentGUI
快捷键= CTRL+ALT+SHIFT+J

  • TextFX
    (这是大多数用户使用的工具)

快捷键= CTRL+ALT+SHIFT+B

  • XML Tools
    (专为XML定制的插件)

快捷键= CTRL+ALT+SHIFT+B


1
当我使用UniversalIndentGUI缩进一大行XML时,它不起作用。我没有任何变化。 - Alex
1
我再次检查了一下,发现在安装插件后它仍然无法正常工作。您需要编辑插件的设置,进入XML缩进选项并勾选“强制换行”选项。现在它可以正常工作了。感谢您的提示,因为它对于XML不完全正确非常有帮助 :) - Alex
UniversalIndentGUI对我很有用,其他选项都失败了,不确定为什么,除了我要美化的XML文件超过了40MB。它也非常快速。感谢Alex提供的XML强制换行选项提示。 - Branstar
TextFX已经被淘汰 - 来自*TextFX的未来*:“...告别了一匹老马,它为社区服务得很好。” - Peter Mortensen

18

之前所有的回答都没有说明如何在Notepad++中添加插件管理器。

这是给那些在插件选项卡中看不到插件管理器的人

从此链接下载插件管理器- 这是64位插件管理器。下载插件管理器后,将其粘贴到插件文件夹中。我的插件文件夹位于:C:\Program Files\Notepad++\plugins

输入图像描述

粘贴 .dll 文件后,请重新启动 Notepad++。现在您可以安装任何插件。要安装插件,请单击插件选项卡,然后转到插件管理器并选择您想要的插件。


16

要达到最佳效果,您应该同时使用和。以下是如何实现以及原因:

1.TextFX -> TextFX HTML Tidy -> Tidy: reindent XML

TextFX能够将长行进行换行,而XML Tools则不能,但是它无法正确缩进这些新的行。

2. XML Tools -> Pretty print (Text indent)

XML工具通过对新换行的行进行良好的缩进,与TextFX相辅相成。


我试图比较两个不同的环境配置文件...它们有大约10个不同的设置...但是一个文件中的xml属性在一行上,在另一个xml文件中则分别在不同的行上。只有通过这两种方式,实际的差异才会在文件比较工具上显现出来。谢谢。 - granadaCoder
1
TextFX已经被淘汰 - 来自*TextFX的未来*:“...告别了一匹老马,它为社区服务得很好。” - Peter Mortensen

11

如果你遇到这个错误:

Notepad++ Error: Cannot load 32-bit plugin

无法加载32位插件,XMLTools.dll与当前版本的Notepad++不兼容

在这里,你可以找到适用于Windows 10 x64的可工作版本:Xml Tools 2.4.9.2 Unicode

注意:这是我在Windows 10 Professional x64上发现的唯一可工作版本。


11

好的,以下是我在Notepad++中的操作步骤:

  • 插件
  • 插件管理器
  • 显示插件管理器
  • 勾选XML工具
  • 安装
  • 重新启动Notepad++
  • 打开XML文件
  • 插件
  • XML工具
  • 美化(仅限XML - 带有换行符)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接