Как читать XML с помощью memorystream и streamreader?
- Привет!
Я использую MemoryStream и StringBuilder и хочу прочитать XML-файл с помощью StreamReader/StreamWriter.
Пожалуйста помочь.
С уважением
Аман
Что я уже пробовал:
XDocument xdoc = new XDocument(); string filecontent = PreProcessXML(lvi.Tag.ToString()); //XML File using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sw = new StreamWriter(ms)) { sw.Write(filecontent); using (StreamReader sr = new StreamReader(ms)) { sr.ReadToEnd(); xdoc = XDocument.Load(sr); //System.Xml.XmlException: 'Root element is missing.' I am getting this error here during execution. } } }
//Custom Function to change a few tags in the original XML for input.
private string PreProcessXML(String xmlpath) { StringBuilder sb = new StringBuilder(); string openbreak = ""; string closebreak = ""; foreach (var line in File.ReadLines(xmlpath)) { if (line.StartsWith("<break ")) { openbreak = line.Replace("/", ""); if (closebreak != "") { sb.AppendLine(closebreak); } else closebreak = "</break>"; sb.AppendLine(openbreak); } else { if (line == "</sec>") { sb.AppendLine(closebreak); closebreak = ""; } sb.AppendLine(line); } } return sb.ToString(); }
Richard MacCutchan
Почему ты все усложняешь для себя? Просто вставьте исходный файл в считыватель, и вам не понадобится вся эта дополнительная обработка.