96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| using System.Xml;
 | |
| using System.IO;
 | |
| 
 | |
| namespace PrettyPrint
 | |
| {
 | |
| 	public partial class frmPrettyPrint : Form
 | |
| 	{
 | |
| 		public string MyStatus
 | |
| 		{
 | |
| 			get { return tsslStatus.Text; }
 | |
| 			set { tsslStatus.Text = value; Application.DoEvents(); }
 | |
| 		}
 | |
| 		public frmPrettyPrint()
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 		}
 | |
| 		private void btnPretty_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			FileInfo fi = new FileInfo(tbOutputFileName.Text);
 | |
| 			using(FileStream fs = fi.Create())
 | |
| 			{
 | |
| 				using (StreamWriter sw = new StreamWriter(fs))
 | |
| 				{
 | |
| 					XmlDocument doc = new XmlDocument();
 | |
| 					//get your document
 | |
| 					doc.Load(tbInputFileName.Text);
 | |
| 					//create reader and writer
 | |
| 					XmlNodeReader xmlReader = new XmlNodeReader(doc);
 | |
| 					XmlTextWriter xmlWriter = new XmlTextWriter(sw);
 | |
| 					//set formatting options
 | |
| 					xmlWriter.Formatting = Formatting.Indented;
 | |
| 					xmlWriter.Indentation = 1;
 | |
| 					xmlWriter.IndentChar = '\t';
 | |
| 					//write the document formatted
 | |
| 					xmlWriter.WriteNode(xmlReader, true);
 | |
| 					xmlWriter.Close();
 | |
| 					xmlReader.Close();
 | |
| 					sw.Close();
 | |
| 				}
 | |
| 				fs.Close();
 | |
| 			}
 | |
| 		}
 | |
| 		private void btnFolderBrowse_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			fbd.SelectedPath = tbFolder.Text;
 | |
| 			if (fbd.ShowDialog() == DialogResult.OK)
 | |
| 				tbFolder.Text = fbd.SelectedPath;
 | |
| 		}
 | |
| 		private void btnFolderPretty_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			DirectoryInfo di = new DirectoryInfo(tbFolder.Text);
 | |
| 			FileInfo [] files = di.GetFiles("*.xml");
 | |
| 			tspbStatus.Maximum = files.Length;
 | |
| 			tspbStatus.Visible = true;
 | |
| 			tspbStatus.Value = 0;
 | |
| 			foreach(FileInfo fi in files)
 | |
| 			{
 | |
| 				tspbStatus.Value ++;
 | |
| 				MyStatus = string.Format("Processing {0}", fi.Name);
 | |
| 				FixXML(fi);
 | |
| 			}
 | |
| 			tspbStatus.Visible = false;
 | |
| 			MyStatus = "Ready";
 | |
| 		}
 | |
| 		private void FixXML(FileInfo fi)
 | |
| 		{
 | |
| 			DateTime lastModified = fi.LastWriteTime;
 | |
| 			XmlDocument doc = new XmlDocument();
 | |
| 			//get your document
 | |
| 			doc.Load(fi.FullName);
 | |
| 			using (FileStream fs = fi.Create())
 | |
| 			{
 | |
| 				//create reader and writer
 | |
| 				XmlNodeReader xmlReader = new XmlNodeReader(doc);
 | |
| 				XmlTextWriter xmlWriter = new XmlTextWriter(fs, Encoding.Unicode);
 | |
| 				//set formatting options
 | |
| 				xmlWriter.Formatting = Formatting.Indented;
 | |
| 				xmlWriter.Indentation = 1;
 | |
| 				xmlWriter.IndentChar = '\t';
 | |
| 				//write the document formatted
 | |
| 				xmlWriter.WriteNode(xmlReader, true);
 | |
| 				xmlWriter.Close();
 | |
| 				xmlReader.Close();
 | |
| 				fs.Close();
 | |
| 			}
 | |
| 			fi.LastWriteTime = lastModified;
 | |
| 		}
 | |
| 	}
 | |
| } |