private static bool TryFormatMediaRssText(MediaRssText textToFormat, out XElement textElement)
        {
            textElement = default;

            if (string.IsNullOrEmpty(textToFormat?.Value))
            {
                return(false);
            }

            if (!TryFormatMediaRssTypedText(textToFormat, "text", out textElement))
            {
                return(false);
            }

            if (!string.IsNullOrEmpty(textToFormat.Lang))
            {
                textElement.Add(new XAttribute("lang", textToFormat.Lang));
            }

            if (Rfc2326NptTimeSpanFormatter.TryFormatTimeAsString(textToFormat.Start, out var startFormatted))
            {
                textElement.Add(new XAttribute("start", startFormatted));
            }

            if (Rfc2326NptTimeSpanFormatter.TryFormatTimeAsString(textToFormat.End, out var endFormatted))
            {
                textElement.Add(new XAttribute("end", endFormatted));
            }

            return(true);
        }
        private static bool TryParseMediaRssText(XElement textElement, out MediaRssText parsedText)
        {
            if (!TryParseMediaRssTypedText(textElement, out parsedText))
            {
                return(false);
            }

            if (TryParseStringAttribute(textElement.Attribute("lang"), out var parsedLang))
            {
                parsedText.Lang = parsedLang;
            }

            if (TryParseTimeSpanAttribute(textElement.Attribute("start"), out var parsedStart))
            {
                parsedText.Start = parsedStart;
            }

            if (TryParseTimeSpanAttribute(textElement.Attribute("end"), out var parsedEnd))
            {
                parsedText.End = parsedEnd;
            }

            return(true);
        }