public XmlDocument GetXMLOut(XmlNode DITANode, bool KeepBom = false)
        {
            XmlNode CDataNode = null;
            string CData = "";
            byte[] decodedBytes = null;
            string decodedText = null;

            XmlReaderSettings settings = null;
            DITAResolver resolver = new DITAResolver();
            settings = new XmlReaderSettings();
            settings.DtdProcessing = DtdProcessing.Parse;
            //False
            settings.ValidationType = ValidationType.None;
            settings.XmlResolver = resolver;
            settings.CloseInput = true;
            settings.IgnoreWhitespace = false;

            CDataNode = DITANode.FirstChild;
            CData = CDataNode.InnerText;
            decodedBytes = Convert.FromBase64String(CData);
            decodedText = Encoding.Unicode.GetString(decodedBytes);
            string strStripBOM = "";
            //We're stripping the BOM off here; Disable via optional parameter if you need to keep it.
            strStripBOM = decodedText.Substring(1);

            // Try creating the reader from the string
            StringReader strReader = new StringReader(strStripBOM);

            XmlReader reader = XmlReader.Create(strReader, settings);
            // Create the new XMLdoc and load the content into it.
            XmlDocument doc = new XmlDocument();
            doc.PreserveWhitespace = true;
            doc.Load(reader);

            return doc;
        }
 //SaveTextToFile
 /// <summary>
 /// Loads any FilePath specified XML file into an XML Document.  Works on all valid XML regardless of entities or DTD declarations.
 /// </summary>
 /// <returns>Returns a fully-formed XML Document object.</returns>
 public XmlDocument LoadFileIntoXMLDocument(string FilePath)
 {
     XmlReaderSettings settings = null;
     DITAResolver resolver = new DITAResolver();
     settings = new XmlReaderSettings();
     settings.DtdProcessing = DtdProcessing.Parse;
     //False
     settings.ValidationType = ValidationType.None;
     settings.XmlResolver = resolver;
     settings.CloseInput = true;
     settings.IgnoreWhitespace = false;
     try {
         XmlReader reader = XmlReader.Create(FilePath, settings);
         XmlDocument doc = new XmlDocument();
         doc.PreserveWhitespace = true;
         doc.Load(reader);
         reader.Close();
         return doc;
     } catch (Exception ex) {
         modErrorHandler.Errors.PrintMessage(3, "Failed to load document as xml: " + FilePath + " ErrorMessage: " + ex.Message, strModuleName);
         return null;
     }
 }
        public byte[] GetBinaryOut(XmlNode DITANode)
        {
            XmlNode CDataNode = null;
            string CData = "";
            byte[] decodedBytes = null;

            XmlReaderSettings settings = null;
            DITAResolver resolver = new DITAResolver();
            settings = new XmlReaderSettings();
            settings.DtdProcessing = DtdProcessing.Parse;
            //False
            settings.ValidationType = ValidationType.None;
            settings.XmlResolver = resolver;
            settings.CloseInput = true;
            settings.IgnoreWhitespace = false;

            CDataNode = DITANode.FirstChild;
            CData = CDataNode.InnerText;
            decodedBytes = Convert.FromBase64String(CData);
            return decodedBytes;
        }