Is there a free XML formatting (indent) tool available where I can past an XML string and have it formatted so I can read the XML document correctly?
Thanks
Edit ~ I am using XML Notepad on Windows XP.
Is there a free XML formatting (indent) tool available where I can past an XML string and have it formatted so I can read the XML document correctly?
Thanks
Edit ~ I am using XML Notepad on Windows XP.
I believe that Notepad++ has this feature.
Edit (for newer versions)
Install the "XML Tools" plugin (Menu Plugins, Plugin Manager)
Then run: Menu Plugins, Xml Tools, Pretty Print (XML only - with line breaks)
Original answer (for older versions of Notepad++)
Notepad++ menu: TextFX -> HTML Tidy -> Tidy: Reindent XML
This feature however wraps XMLs and that makes it look 'unclean'. To have no wrap,
C:\Program Files\Notepad++\plugins\Config\tidy\TIDYCFG.INI, [Tidy: Reindent XML] and add wrap:0 so that it looks like this: [Tidy: Reindent XML] input-xml: yes indent:yes wrap:0
Firstobject's free XML editor for Windows is called foxe is a great tool.
Open or paste your XML into it and press F8 to indent (you may need to set the number of indent spaces as it may default to 0).
It looks simple, however it contains a custom written XML parser written in C++ that allows it to work efficiently with very large XML files easily (unlike some expensive "espionage" related tools I've used).
From the product page:
The full Visual C++ source code for this firstobject XML editor (including the CDataEdit gigabyte edit control MFC component) is available as part of the Advanced CMarkup Developer License. It allows developers to implement custom XML handling functions such as validation, transformation, beautify, and reporting for their own purposes.
You can open the XML file in any Visual Studio Express product and the press Ctrl+A, Ctrl+K, Ctrl+F to get it nicely formatted.
Hey, it's free and it's a tool, so it fits the question. :-)
Another method to reindent XML in Notepad++:
From menu select Plugins -> XML Tools -> Pretty print (XML only – with line breaks)
or press Ctrl+Alt+Shift+B.
If you use Notepad++, I would suggest installing the XML Tools plugin. You can beautify any XML content (indentation and line breaks) or linarize it. Also you can (auto-)validate your file and apply XSL transformation to it.
Download the latest zip and copy the extracted DLL to the plugins directory of your Notepad++ installation. Also, download the External libs and copy them to your %SystemRoot%\system32\ directory.
Not directly an answer, but good to know nevertheless: After indenting, please make sure that the parser(s) and application(s) which will subsequently process the formatted XML will not yield different results. White space is often significant in XML and most conforming parsers bubble it up to the application.
If you are a programmer, many XML parsing programming libraries will let you parse XML, then output it - and generating pretty printed, indented output is an output option.
Notepad++ dit it well only if you're in ANSI. If you do it in something like "ANSI AS UTF8", tidy dirty the doc :/.
Try http://prettydiff.com/ The algorithm is similar to HTML Tidy, but is more complete. The program is written entirely in JavaScript, so you don't have to install anything.