2009-08-22 26 views
7

私のサイトのrssフィード(解析済み)のリストからopmlファイルを生成するコードをいくつか書いています。ユーザーは自分のサイトのrssフィードのデータグリッドからチェックボックスを選択し、ボタンを押すと重い作業が行われます。Linqからxmlへのxnameの使用

とにかく、このようなコードを持っている:

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

    } 

リストフィードオブジェクトのコレクション(例えばHanselman氏RSSフィード、codinghorrorのRSSフィードなど)です。 DataGridにチェックボックスがあり、このグリッドの下にあるボタンを押すと、上のコードが実行されます(xml宣言などのコードもあります)。

要素(...)メソッドを使用する場合は、XNameを指定する必要があります。これは私が使用することができない内部コンストラクタを持っています。このパラメータをどのように渡すことができますか?

答えて

11

XNameには、Getという名前の静的メソッドがあり、XNameを作成できます。しかし、のXNameに文字列からの暗黙的なキャストもありますので、あなただけの文字列を入力した場合、問題

2

XNamespaceオブジェクトを作成し、加算演算子を使用せずのXNameと仕事にCONVERすることができるはずです。

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

また、中括弧内の名前空間を囲むことができます。

XName name = "{http://schemas.xyz.com/namespaceUri}tagName"; 
関連する問題