2009-07-02 12 views
8

Używanie klas .NET System.ServiceModel.Syndication ...Jak dodać SyndicationElementExtension Aby A SyndicationItem

Chciałbym dodać nową SyndicationElementExtension do SyndicationItem że będzie eksportować następujące XML:

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

Coś wzdłuż linii:

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

Jak stworzyć prosty SyndicationElementExtension z kilku atrybutów?

Odpowiedz

10

znaleźć odpowiedź tutaj: http://msdn.microsoft.com/en-us/library/bb943475.aspx

SyndicationElementExtensionCollection klasa może być również wykorzystywane do tworzenia rozszerzeń element z XmlReader instancji. Pozwala to na łatwą integrację z interfejsami API przetwarzania danych , takimi jak XElement, jak pokazano w następującym kodzie przykładowym: .

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

Żeby uprościć do następnego gościa, który przychodzi wraz próbuje dowiedzieć się tego, oto przykład pracuje dodawania podstawową miniaturę elementu (RSS 2.0 obudowa w tym przypadku) wraz z liniami dokumentacja:

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

można również zrzucić atrybuty i po prostu ustawić zawartość tekstową po nazwie znacznika, jeśli chcesz prosty tag, czyli <comments>http://my.comments/feed</comments>.

+0

Jak zrzucić atrybuty? Jeśli nie przekażę żadnego, a także nie przekazuję przestrzeni nazw dla elementu, wstawia on atrybut xmlns = "" w każdym razie. – Hallaghan

+0

Hmm, nie widzę, aby działo się to z mojego powodu, atrybut 'xmlns =" ​​"" jest określony tylko w zewnętrznym '' elemencie. Czy możesz wysłać przykład? – nickb