예제 #1
0
        private static bool TryParseRss10Item(XElement itemElement, XNamespace rss, ExtensionManifestDirectory extensionManifestDirectory, out Rss10Item parsedItem)
        {
            parsedItem = default;

            if (itemElement == null)
            {
                return(false);
            }

            parsedItem             = new Rss10Item();
            parsedItem.About       = itemElement.Attribute(_rdf + "about")?.Value;
            parsedItem.Title       = itemElement.Element(rss + "title")?.Value.Trim();
            parsedItem.Link        = itemElement.Element(rss + "link")?.Value.Trim();
            parsedItem.Description = itemElement.Element(rss + "description")?.Value.Trim();

            // extensions
            ExtensibleEntityParser.ParseXElementExtensions(itemElement, extensionManifestDirectory, parsedItem);

            return(true);
        }
예제 #2
0
        private static bool TryFormatRss10Item(Rss10Item itemToFormat, bool referenceOnly, XNamespaceAliasSet namespaceAliases, ExtensionManifestDirectory extensionManifestDirectory, out XElement itemElement)
        {
            itemElement = default;

            if (itemToFormat == null)
            {
                return(false);
            }

            itemElement = referenceOnly
                ? new XElement(_rdf + "li", new XAttribute("resource", itemToFormat.About ?? ""))
                : new XElement(_rss + "item", new XAttribute(_rdf + "about", itemToFormat.About ?? ""));

            if (referenceOnly)
            {
                return(true);
            }

            itemElement.Add(new XElement(_rss + "title")
            {
                Value = itemToFormat.Title ?? ""
            });
            itemElement.Add(new XElement(_rss + "link")
            {
                Value = itemToFormat.Link ?? ""
            });

            if (TryFormatOptionalTextElement(itemToFormat.Description, _rss + "description", out var descriptionElement))
            {
                itemElement.Add(descriptionElement);
            }

            // extensions
            if (ExtensibleEntityFormatter.TryFormatXElementExtensions(itemToFormat, namespaceAliases, extensionManifestDirectory, out var extensionElements))
            {
                itemElement.AddRange(extensionElements);
            }

            return(true);
        }