2009-08-22 7 views
7

J'écris du code pour générer un fichier opml à partir d'une liste de flux rss (analysés) sur mon site. L'utilisateur va sélectionner les cases à cocher d'une grille de données de flux RSS sur mon site, et en appuyant sur un bouton, le levage lourd se produira.Utiliser xname dans Linq-to-xml

Quoi qu'il en soit, je code comme ceci:

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

    } 
liste

est une collection d'objets d'alimentation (par exemple Hanselman flux RSS, codinghorror flux RSS, etc.). La grille de données aura une case à cocher et en appuyant sur le bouton en dessous de cette grille, le code ci-dessus va s'exécuter (j'ai aussi le code pour les déclarations xml etc). Lorsque j'utilise la méthode Element (...), je dois fournir XName. Cela a un constructeur interne que je ne peux pas utiliser. Comment puis-je transmettre ce paramètre?

Répondre

11

Il existe une méthode statique sur XName appelée Get qui vous permet de créer un XName. Cependant, il y a aussi une distribution implicite de chaîne à XName, donc si vous entrez juste une chaîne, il devrait être en mesure de conver à XName et travailler sans problèmes

2

Créer un objet XNamespace et utiliser l'opérateur d'addition:

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

Vous pouvez également joindre un espace de noms entre accolades:

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