2009-07-02 11 views
8

Usando las clases .NET System.ServiceModel.Syndication ...cómo agregar un SyndicationElementExtension a un SyndicationItem

Me gustaría añadir un nuevo SyndicationElementExtension a un SyndicationItem que exportará el siguiente código XML:

<media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123" /> 

Algo a lo largo de las líneas de:

syndicationItem.ElementExtensions.Add(new SyndicationElementExtension("thumbnail", "http://video.search.yahoo.com/mrss", ? 

¿Cómo se crea un SyndicationElementExtension sencillo con unos atributos?

Respuesta

10

encontrado la respuesta aquí: http://msdn.microsoft.com/en-us/library/bb943475.aspx

La clase SyndicationElementExtensionCollection también se puede utilizar para crear extensiones elemento de una XmlReader ejemplo. Esto permite una integración fácil con con las API de procesamiento XML , como XElement, como se muestra en el siguiente código de ejemplo .

feed.ElementExtensions.Add(new XElement("xElementExtension", 
     new XElement("Key", new XAttribute("attr1", "someValue"), "Z"), 
     new XElement("Value", new XAttribute("attr1", "someValue"), 
     "15")).CreateReader()); 
11

Sólo para simplificar para el siguiente tipo que viene tratando de resolver esto, he aquí un ejemplo de trabajo de la adición de una miniatura básica artículo (RSS 2.0 recinto en este caso) a lo largo de las líneas de la documentación:

SyndicationItem item = new SyndicationItem(); 

// populate item... 

item.ElementExtensions.Add(
    new XElement("enclosure", 
     new XAttribute("type", "image/jpeg"), 
     new XAttribute("url", "http://path.to/my/image.jpg") 
    ).CreateReader() 
); 

también puede volcar los atributos y acaba de establecer el contenido textual después de que el nombre de la etiqueta si desea una simple etiqueta, es decir <comments>http://my.comments/feed</comments>.

+0

¿cómo se vuelcan los atributos? Si no paso ninguno y tampoco paso el espacio de nombre para un elemento, inserta el atributo xmlns = "" de todos modos. – Hallaghan

+0

Hmm, no veo que eso ocurra en mi extremo, el atributo 'xmlns =" ​​"' solo se especifica en el elemento '' externo. Puede publicar un ejemplo? – nickb

Cuestiones relacionadas