2009-08-22 11 views
7

Piszę kod, aby wygenerować plik opml z listy rss feeds (parsowane) na mojej stronie. Użytkownik wybierze pola wyboru z datagridu z kanałów RSS w mojej witrynie, a po naciśnięciu przycisku nastąpi silne podnoszenie.Używanie xname w Linq-to-xml

każdym razie, ma kodu:

 foreach (var v in list) 
    { 
     XName xname; 

     doc.Element("channel").Add(
      new XElement("title", v.Name), 
      new XElement("description", "First Article Description"), 
      new XElement("pubDate", DateTime.Now.ToUniversalTime()), 
      new XElement("guid", Guid.NewGuid())); 

    } 

lista jest zbiorem obiektów zasilających (np Hanselman RSS, codinghorror RSS, itp). Datagrid będzie miał pole wyboru i naciśnięcie przycisku poniżej tej siatki, powyższy kod zostanie wykonany (mam również kod dla deklaracji xml itp.).

Kiedy używam metody Element (...), muszę podać XName. Ma wewnętrzny konstruktor, którego nie mogę użyć. Jak mogę przekazać ten parametr?

Odpowiedz

11

W nazwie XName jest metoda statyczna, która umożliwia utworzenie nazwy XName. Jednakże, istnieje również niejawna odlewane z ciągiem do XName, więc jeśli tylko wpisać ciąg powinien być w stanie CONVER do XName i działa bez problemów

2

Tworzenie XNamespace obiekt i użyć operatora Ponadto:

XName name = (XNamespace)"http://schemas.xyz.com/namespaceUri" + "tagName"; 
15

można również dołączyć nazw w nawiasach klamrowych:

XName name = "{http://schemas.xyz.com/namespaceUri}tagName";