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); } } } }