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); }
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); }