免费的XML格式化工具


223

有没有免费的XML格式化(缩进)工具,我可以在其中粘贴XML字符串并对其进行格式化,以便可以正确读取XML文档?

谢谢

编辑〜我在Windows XP上使用XML记事本。


1
您在什么平台上?您已经在使用什么文本编辑器?大多数体面的文本编辑器都开箱即用地支持此功能,或者具有可用的附件。
乔恩·斯基特

45
我发现这很有建设性
JGilmartin 2012年

17
同意。这个问题实际上很适合问答:一个狭义问题的事实答案。这个问题不应该被关闭。
Ben Collins'3

4
我也同意。该问题的答案提供了有用的信息。另外,在问了两年后结束一个问题似乎很愚蠢。
Bill W

Answers:


349

我相信Notepad ++具有此功能。

编辑(对于较新的版本)
安装“ XML工具”插件(菜单插件,插件管理器),
然后运行:菜单插件,Xml工具,Pretty Print(仅XML-带换行符)

原始答案(适用于旧版本的Notepad ++)

记事本++菜单:TextFX-> HTML Tidy-> Tidy:Reindent XML

但是,此功能包装了XML,这使其看起来“不干净”。没有包裹,

  • 开放C:\Program Files\Notepad++\plugins\Config\tidy\TIDYCFG.INI
  • 找到条目[Tidy: Reindent XML]并添加wrap:0,使其看起来像这样:
[整理:重新插入XML] 
输入xml:是 
缩进:是 
包装:0 


3
我验证了没有插件的情况。只需下载最新版本的Notepad ++,它将支持此功能。
Michael La Voie

7
HTMLTidy被描述为Notepad ++的功能,这很有趣(令人误解)。它是一个独立的工具(tidy.sourceforge.net),比Notepad ++长得多,并且可以在支持外部工具的任何文本编辑器中使用。在找到FirstObject XML Editor之前,我在命令提示符下使用了很长时间。
灰烬

8
但是,Notepad ++的XML缩进功能包装了XML,这使其看起来“不干净”。我喜欢IE表示的方式。要没有“ Tidy:Reindent XML”的换行,请打开“ C:\ Program Files \ Notepad ++ \ plugins \ Config \ tidy \ TIDYCFG.INI”,找到条目“ [Tidy:Reindent XML]”并添加“ wrap:0 ”,以使它看起来像这样:[Tidy:Reindent XML] input-xml:yes indent:ys wrap:0这应该提供未包装的XML
Joseph

20
仅供参考,Notepad ++的最新版本(在撰写本文时为5.9)不包括TextFX,要使其正常工作,需要手动构建DLL。在插件管理器中,安装XML Tools插件-更加容易。
Alex Beardsley

57

Firstobject用于Windows的免费XML编辑器被称为foxe,它是一个很好的工具。

打开或将XML粘贴到其中,然后按F8键缩进(您可能需要设置缩进空格的数量,因为它可能默认为0)。

它看起来很简单,但是它包含一个用C ++编写的自定义书面XML解析器,使它可以轻松地非常有效地处理非常大的XML文件(与我使用的一些昂贵的“间谍”相关工具不同)。

从产品页面:

此Firstobject XML编辑器的完整Visual C ++源代码(包括CDataEdit gigabyte编辑控件MFC组件)可作为Advanced CMarkup Developer License的一部分获得。它允许开发人员根据自己的目的实现自定义XML处理功能,例如验证,转换,美化和报告。


4
哈,昂贵的“间谍活动” ...一天中的一个:)
赛义夫汗

1
那是一个整洁的工具。微小的。
凯夫(Kev)

1
它甚至可以渲染实体,非常方便!
James B

1
这比notepad ++中的xml工具插件好得多
Li Tian Gong

5
我有一个15MB的文件-Notepad ++在1分钟内无法正常运行一个核,而Visual Studio却在做同样的事情(并且减慢了咀嚼越来越多的内存的速度。Foxe可以立即打开并格式化它-令人印象深刻。UI是计划简陋的,但它做这项工作。
迈克蜂蜜

52

使用以下内容:

xmllint --format


我的cygwin发行版已经有了这个,所以我想我不需要下载Windows二进制文件,然后决定我想写一个bash脚本
vinnyjames 2013年

22

您可以在任何Visual Studio Express产品中打开XML文件,然后按Ctrl+ ACtrl+ KCtrl+ F将其格式化。

嘿,它是免费的,而且是一个工具,因此很适合这个问题。:-)


我曾经这样做过:D好,我有一个合适的VS版本。我很高兴现在知道更好的轻量级工具!
jamiebarrow

1
一直以来,我一直将它从VS复制到Notepad ++只是为了格式化xml,而我可以做到这一点!而且,我已经使用Ctrl + K Ctrl + F格式化了代码。:-) 好一个。
李·奥德斯

1
甚至可以简化一点,因为Ctrl + K,Ctrl + D格式化整个文档,因此您可以跳过Ctrl + A。
汉斯·奥尔森

16

在Notepad ++中重新缩进XML的另一种方法:

从菜单中选择插件-> XML工具->漂亮打印(仅XML-带换行符)
或按Ctrl+ Alt+ Shift+ B


3
您可能需要先添加插件,然后才能执行此操作。通过插件管理器添加
讨厌的馅饼

即使使用此插件,即使在我的Core-i5 / 8GB PC上打开20+ MB文件,NPP也会变得非常慢
kmonsoor 2014年

5

您也可以尝试http://xmltoolbox.appspot.com/,它是一个在线xml格式化程序。您只需将xml粘贴到一个较大的文本区域中,然后按“格式化xml”,然后它将xml漂亮地打印在文本区域中,以便于阅读或复制。

还有一个不错的小过滤功能,可让您查看所有特定元素。

希望你会喜欢这个工具


4

如果您使用Notepad ++,我建议您安装XML Tools插件。您可以美化任何XML内容(缩进和换行符)或简化它。您也可以(自动)验证文件并将XSL转换应用于它。

下载最新的zip并将解压缩的DLL复制到Notepad ++安装的plugins目录。另外,下载外部库并将其复制到您的%SystemRoot%\ system32 \目录。


实际上,您也将需要ext_libs,有一个exe文件可以在源伪造存储库中为您完成所有操作
roundcrisis'Aug

3

高级常规格式 [更新]

XMLSpectrum是一个开放源代码的语法突出显示。支持XML-但具有XSLT 2.0,XSD 1.1和XPath 2.0的特殊功能。我在这里提到这一点是因为它还具有XML的特殊格式设置功能:它可以垂直对齐属性及其内容以及元素,以增强XML的可读性。

输出的HTML适合在浏览器中查看,或者如果XML需要进一步编辑,则可以将其复制并粘贴到您选择的XML编辑器中

由于xmlspectrum.xsl使用其自己的XML文本解析器,因此保留了所有内容(例如实体引用和CDATA节)-就像在编辑器中一样。

在此处输入图片说明

使用注意事项:这只是XSLT 2.0样式表,因此您需要将所需的命令行(提供的示例)封装在一个小的脚本中,以便可以自动转换XML源。

虚拟格式

XMLQuire是一个免费的XML编辑器,具有特殊的格式化功能-可以正确格式化XML,包括多行属性,属性值,自动换行缩进甚至XML注释。

在不插入制表符或空格的情况下完成所有XML缩进,以确保维护XML的完整性。对于高于XP的Windows版本,无需安装,仅需3MB .exe文件。

如果您需要打印格式化的XML,则在打印预览中有一些特殊的选项,例如缩进后的行号。如果您需要将格式化的XML作为RTF复制到文字处理器,也可以使用。

[披露:我将XMLQuire和XMLSpectrum都保留为“主项目”]


我刚刚在这里写过
Bruno

1

如果您是一名程序员,那么许多XML解析编程库都可以让您解析XML,然后将其输出-并生成漂亮的打印,缩进输出一个输出选项。



1

仅当您使用ANSI时,Notepad ++才能很好地解决它。如果您以“ ANSI AS UTF8”之类的方式进行操作,请整理文档:/。


1

虽然不是直接的答案,但还是要知道:缩进之后,请确保随后将处理格式化的XML的解析器和应用程序不会产生不同的结果。空格在XML中通常很重要,大多数符合条件的解析器会将其冒充到应用程序中。


WPF中出现了一个在语义上有意义的空白的臭名昭著的示例。具体来说,除非这些标记严格邻接XAML源文件,否则相邻的<Run />标记将在输出中引入(通常是不需要的)空间
Glenn Slayden
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.