1868
votes

I have Notepad++ and I got some XML code which is very long. When I pasted it in Notepad++ there was a long line of code (difficult to read and work with).

I want to know if there is a simple way to make the text readable (by readable I mean properly tabbed code).

I can do it manually, but I want a permanent solution to this as I have faced this several times. I am sure there is a way to do this as I have done it once before a couple of years back, maybe with Visual Studio or some other editor, I don't remember.

But can Notepad++ do it?

20
Configuring the XMLTools is bit tricky with latest versions. In Windows 10, Notepad++ version V6.6.8 I have configured XMLTools 2.4.7 successfully. Download the latest plugin from this link and follow the instruction in install.txt > notepad-plus-plus.org/community/topic/125/… .S.Roshanth
Current solution for the 64bit version: superuser.com/q/1239935/333622Raidri

20 Answers

2632
votes

Try Plugins -> XML Tools -> Pretty Print (libXML) or (XML only - with line breaks Ctrl + Alt + Shift + B)

You may need to install XML Tools using your plugin manager in order to get this option in your menu.

In my experience, libXML gives nice output but only if the file is 100% correctly formed.

131
votes

You need to install the XML tool from the Plugins menu item → Plugins Admin...Plugins Admin dialog appears and then scroll to bottom of available plugins and check the XML tools, install it and then Ctrl + Alt + Shift + B OR the option for XML Tool above shows up.

104
votes
Step 1: Install XML Tools plugin
Step 2: Format ....completed

enter image description here

44
votes

Try TextFX → TextFX Html Tidy → Tidy: reindent XML

If you can't try with Eclipse, do right button, source, and correct indent.

37
votes

Plugins -> XML Tools -> Pretty Print (libXML) or Ctrl+Alt+Shift+B

You probably need to install the plugin:

Plugins > Plugins Manager > Show Plugins Manager

If you are behind a proxy, download it from here.

Then copy XMLTools.dll to the plugins directory and external libraries (four dlls) into the root Notepad++ directory.

21
votes

Here are most of plugins you can use in Notepad++ to format your XML code.

  • UniversalIndentGUI
    (I recommend this one)

Enable 'text auto update' in plugin manager-> UniversalIndentGUI
Shortkey = CTRL+ALT+SHIFT+J

  • TextFX
    (this is the tool that most of the users use)

Shortkey = CTRL+ALT+SHIFT+B

  • XML Tools
    (customized plugin for XML)

Shortkey = CTRL+ALT+SHIFT+B

16
votes

All the previous answers do not define how to add the plugin manager in your Notepad++ installation.

This is for the folks who do not see the the plugin manager in the plugin tab

Download the plugin manager from this link - this is for the 64-bit plugin manager. Once you download the plugin manager, paste in the plugin folder. This is was my location of plugin folder: C:\Program Files\Notepad++\plugins

Enter image description here

After pasting the .dll file restart Notepad++. Now you can install any plugin. To install a plugin, click on the plugin tab, then go to plugin manager and select the plugin whatever you want.

15
votes

For best results, you should use both TextFX XML tidy and XML tools pretty print. Here's how and why:

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

TextFX has the benefit of wrapping long lines, which XML Tools does not do, but it doesn't indent those new lines correctly.

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

XML Tools complements TextFX by indenting the newly wrapped lines nicely.

10
votes

If you get this error:

Notepad++ Error: Cannot load 32-bit plugin

Cannot load 32-bit plugin, XMLTools.dll is not compatible with the current version of Notepad++

Here you can find a working version for Windows 10 x64: Xml Tools 2.4.9.2 Unicode

Note: It's the only version I've found working on Windows 10 Professional x64.

8
votes

OK, here is how I did it in Notepad++:

  • Plugins
  • Plugin manager
  • Show plugin manager
  • Check XML tools
  • Install
  • Restart Notepad++
  • Open XML file
  • Plugins
  • XML tools
  • Pretty print (XML only -- with line breaks)
6
votes

You can find details here To Quickly Format XML using Pretty Print (libXML)

Installing the XML Tools

If you run Notepad++ and look in the Plugins menu, you’ll see that the XML Tools aren’t there:

  1. Download the XML tools from here.

  2. Unzip the file and copy the XMLTools.dll to the Notepad++ plugins folder (in the example above: C:\Program Files (x86)\Notepad++\plugins):

  3. Re-start Notepad++ and you should now see the XMLTools appear in the Plugins menu.

  4. Unzip the ext_libs.zip file and then copy the unzipped DLLs to the Notepad++ installation directory (in the example above: C:\Program Files (x86)\Notepad++).

  5. Re-start Notepad++ and you should finally see the proper XML Tools menu.

  6. The feature I use the most is “Pretty print (XML only – with line breaks)”. This will format any piece of XML with all the proper line spacing.

5
votes

Notepad++ v6.6.3 with plugin "XML Tools" and shortcut Ctrl + Alt + Shift + B works fine.

4
votes

There is no such a thing like TextFX in Notepad++, not in the latest version at least. This is one of the reasons I'm still with DreamWeaver even if it is driving me insane being slow and unresponsive from time to time...

4
votes

The latest version of Notepad++ x64 v7.6.2 on Windows 10 already moved the plugin manager to 'Plugins Admin'.

Old versions of Notepad++ and plugin manager won't work.

3
votes

"But can Notepad++ do it?"

If the XML is invalid, the answer is apparently 'no'. I tried Notepad++ with the Tidy2 and XMLTools plugins. Both give errors similar to "errors encountered, please fix". If you don't care about errors, that's a PITA.

Instead, open it in visual studio then edit -> advanced -> format document. Quick and pretty.

3
votes

If your XML is imperfect, try this with the TextFX Characters plugin (install from Plugin manager):

First, find a ">" to copy into the clipboard. Then select ALL your text, and then...

On the main menu: TextFX -> TextFX Edit -> Solit lines at clipboard char...

This will do a reasonable job, not perfect, but things will be readable, at least.

I had to do this with XML code stored in an SQL Server database, where the headers weren't stored, just the XML body...

3
votes

Since I see lots of comments about people having problems with the plugin, I thought I'd mention the work around that I use.

I just use one of the online sites for XML viewing (I use https://codebeautify.org/xmlviewer, but there are plenty out there) as follows:

  1. Paste the XML content in the input window
  2. Click the "Beautify / Format" button
  3. Copy formatted XML output from the result window
  4. Paste in Notepad++

I don't know if it qualifies as answering the OP's question exactly, but it's very simple and easy for anyone who is having problems with the plugin.

3
votes

You can't, granted you don't have access to install plugins. But you probably have or can get Eclipse (Visual Studio can do this too).

Ctrl + N (new file) → (choose XML file) → (paste your XML content) → Ctrl + Shift + K (format)

If you want to format JSON NotePad++ can do this by default with Ctrl + Alt + m

3
votes

The location of XML tools has changed slightly since this question was first asked.

I am currently using Notepad++ v7.8.6

New location is:

  • Plugins tab
  • Plugins Admin...
  • Plugins Admin dialog appears with Available plugins tab as the default
  • Scroll to the bottom and check the XML Tools checkbox
  • Click Install button in top right of the dialog

This will close Notepad++ while it installs and then restart it automatically.

Then there are a couple keyboard shortcuts to beautify the XML:

  • Pretty Print: Ctrl + Shift + Alt + B
  • Pretty Print (indent attributes): Ctrl + Shift + Alt + A

To see more XML Tools options:

  • Plugins tab
  • XML Tools option
2
votes

UniversalIndentGUI did the job for me, once configured properly as described above.

TextFX would not install and run correctly on an old PC I have running Windows XP. There are instructions above for manual installation of various DLL files, but I'd rather avoid any manual installation.

UniversalIndentGUI formatted some lines like this:

        <ClockStatus>1
        </ClockStatus>

And I would have preferred:

        <ClockStatus>1</ClockStatus>

But the output is still much better than one long line!