c# windows-8 windows-runtime syndication-feed

c# - SyndicationFeed: cómo acceder al contenido: ¿está codificado?



windows-8 windows-runtime (2)

En una aplicación de Windows 8 Store, estoy leyendo algunos datos Xml usando SyndicationFeed . Algunos elementos de las fuentes RSS contienen, por ejemplo, content:encoded (xmlns: content = ''...''). ¡Creo que no hay forma de obtener el contenido de estos elementos a través del SyndicationItem ?!

Es por eso que intento dentro de mi foreach(SyndicationItem item in feeditems) algo como esto:

item.GetXmlDocument(feed.SourceFormat).SelectSingleNode("/item/*:encoded]").InnerText;

Pero esto no funciona. Y estoy seguro de cómo usar NamespaceManager etc. en winrt. Por ahora estoy accediendo al contenido: codificado mediante el método NextSibling de otro elemento, pero esa no es una manera realmente limpia.

Entonces, ¿cómo puedo acceder al contenido del elemento mejor?

<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:content="URI"> <channel> <.../> <item> <title>Example entry</title> <description>Here is some text containing an interesting description.</description> <link>http://www.wikipedia.org/</link> <content:encoded>Content I try to access</content:encoded> </item> </channel> </rss>


Solo usa XNamespace

XNamespace content = "URI"; var items = XDocument.Parse(xml) .Descendants("item") .Select(i => new { Title = (string)i.Element("title"), Description = (string)i.Element("description"), Link = (string)i.Element("link"), Encoded = (string)i.Element(content + "encoded"), //<-- *** }) .ToList();


prueba esto

var items = XDocument.Parse(xml) .Descendants("item") .Select(i => new { Title = (string)i.Element("title"), Description = (string)i.Element("description"), Link = (string)i.Element("link"), Encoded = (string)i.Element("{http://purl.org/dc/elements/1.0/modules/content/}encoded"), //<-- *** }) .ToList();

o

var items = XDocument.Parse(xml) .Descendants("item") .Select(i => new { Title = (string)i.Element("title"), Description = (string)i.Element("description"), Link = (string)i.Element("link"), Encoded = (string)i.Element("{http://purl.org/rss/1.0/modules/content/}encoded"), //<-- *** }) .ToList();