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