namespace HaWeb.FileHelpers; using System.Xml.Linq; using Microsoft.AspNetCore.Mvc.ModelBinding; using System.Text; using System.Xml; public static class XDocumentFileHelper { private readonly static XmlReaderSettings _Settings = new XmlReaderSettings() { CloseInput = true, CheckCharacters = false, ConformanceLevel = ConformanceLevel.Fragment, IgnoreComments = true, IgnoreProcessingInstructions = true, IgnoreWhitespace = false }; public static async Task ProcessStreamedFile(byte[] bytes, ModelStateDictionary modelState) { try { using (var stream = new MemoryStream(bytes)) { using (var xmlreader = XmlReader.Create(stream, _Settings)) { return XDocument.Load(xmlreader, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); } } } catch (Exception ex) { modelState.AddModelError("Error", $"Kein gültiges XML-Dokument geladen. Error: {ex.Message}"); } return null; } }