using System; using System.Collections.Generic; using System.Globalization; using System.Text; using System.Xml; namespace Nikse.SubtitleEdit.Core.SubtitleFormats { public class UnknownSubtitle91 : SubtitleFormat { // // // // public override string Extension => ".xml"; public override string Name => "Unknown 91"; public override string ToText(Subtitle subtitle, string title) { string xmlStructure = "" + Environment.NewLine + ""; var xml = new XmlDocument(); xml.LoadXml(xmlStructure); foreach (Paragraph p in subtitle.Paragraphs) { XmlNode paragraph = xml.CreateElement("caption"); XmlAttribute attr = xml.CreateAttribute("time_in"); attr.InnerText = EncodeTimeCode(p.StartTime); paragraph.Attributes.Append(attr); attr = xml.CreateAttribute("time_out"); attr.InnerText = EncodeTimeCode(p.EndTime); paragraph.Attributes.Append(attr); var cData = xml.CreateCDataSection(HtmlUtil.RemoveHtmlTags(p.Text)); paragraph.AppendChild(cData); xml.DocumentElement.AppendChild(paragraph); } return ToUtf8XmlString(xml); } private static string EncodeTimeCode(TimeCode time) { return time.TotalSeconds.ToString(CultureInfo.InvariantCulture); } public override void LoadSubtitle(Subtitle subtitle, List lines, string fileName) { _errorCount = 0; subtitle.Paragraphs.Clear(); var sb = new StringBuilder(); lines.ForEach(line => sb.AppendLine(line)); string allText = sb.ToString(); if (!allText.Contains("") || !allText.Contains("