77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.IO;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Xml;
 | 
						|
 | 
						|
namespace fmtxml
 | 
						|
{
 | 
						|
    class EntireFormat
 | 
						|
    {
 | 
						|
		private string MyPath;
 | 
						|
        public EntireFormat(string mxml, string path)
 | 
						|
        {
 | 
						|
			MyPath = path;
 | 
						|
            XmlDocument xmldoc = new XmlDocument();
 | 
						|
			XmlComment copyright = xmldoc.CreateComment("Proprietary Information - Copyright 2012 - Volian Enterprises, Inc. All rights reserved.");
 | 
						|
            XmlElement top = xmldoc.CreateElement("PlantFormat");
 | 
						|
			xmldoc.AppendChild(copyright);
 | 
						|
            xmldoc.AppendChild(top);
 | 
						|
            try
 | 
						|
            {
 | 
						|
                XmlReaderSettings settings = new XmlReaderSettings();
 | 
						|
                settings.IgnoreWhitespace = true;
 | 
						|
                StreamReader strrdr = new StreamReader(mxml);
 | 
						|
                XmlTextReader rdr = new XmlTextReader(strrdr);
 | 
						|
                using (rdr)
 | 
						|
                {
 | 
						|
                    rdr.MoveToContent();
 | 
						|
                    XmlNode fmt = xmldoc.ReadNode(rdr);
 | 
						|
                    top.AppendChild(fmt);
 | 
						|
                }
 | 
						|
                rdr.Close();
 | 
						|
                // load page xml
 | 
						|
                string pagename = mxml.Substring(0, mxml.Length - 5) + "p.xml";
 | 
						|
                using (XmlReader reader = XmlReader.Create(pagename, settings))
 | 
						|
                {
 | 
						|
                    reader.MoveToContent();
 | 
						|
                    XmlNode pag = xmldoc.ReadNode(reader);
 | 
						|
                    top.AppendChild(pag);
 | 
						|
                }
 | 
						|
 | 
						|
                string docname = mxml.Substring(0, mxml.Length - 5) + "d.xml";
 | 
						|
                using (XmlReader reader = XmlReader.Create(docname, settings))
 | 
						|
                {
 | 
						|
                    reader.MoveToContent();
 | 
						|
                    XmlNode doc = xmldoc.ReadNode(reader);
 | 
						|
                    top.AppendChild(doc);
 | 
						|
                }
 | 
						|
                string outname = MyPath + @"\fmtall\" + mxml.Substring(mxml.IndexOf("\\")+1,mxml.Length - 13) + "all.xml";
 | 
						|
				XmlWriterSettings settingsout = new XmlWriterSettings();
 | 
						|
				settingsout.Encoding = Encoding.Unicode;
 | 
						|
				settingsout.Indent = true;
 | 
						|
				settingsout.IndentChars = "\t";
 | 
						|
				XmlWriter xmlwrite = XmlWriter.Create(outname,settingsout);
 | 
						|
				xmldoc.WriteContentTo(xmlwrite);
 | 
						|
				xmlwrite.Close();
 | 
						|
				XmlDocument newDoc = new XmlDocument();
 | 
						|
				newDoc.Load(outname);
 | 
						|
				XmlNodeReader xtr = new XmlNodeReader(newDoc);
 | 
						|
				XmlTextWriter xtw = new XmlTextWriter(outname, Encoding.Unicode);
 | 
						|
				xtw.Formatting = Formatting.Indented;
 | 
						|
				xtw.Indentation = 1;
 | 
						|
				xtw.IndentChar = '\t';
 | 
						|
				xtw.WriteNode(xtr, true);
 | 
						|
				xtr.Close();
 | 
						|
				xtw.Close();
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                Console.WriteLine("Error on merge, format = {0}, msg = {1}", mxml, ex.Message);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
}
 |