2012-03-20 5 views
1
var query = from k in xDoc.Descendants("product") 
           select 
           new 
           { 

           KategoriKod =Convert.ToString(k.Element("cat1").Value) + Convert.ToString(k.Element("cat2").Value), 

           }; 

内部の「+」操作。私は、このエラーLINQのXMLに、クエリ式Iは、一つの変数でxmlファイルの2 elemensを取りたい

「『文字列』 『値』の定義が含まれていません」

いずれかのヘルププラザを受け取りますか。?

+0

私たちが見ているXMLファイルを投稿できますか? – mattytommo

+0

残念ながら! XMLファイルは、ユーザーとパスワードだけでアクセスできるリンクです。 –

答えて

0

私のために、次の作品:

{KategoriKod = ABC123} { KategoriKod = XYZ} 任意のキーを押して続行し:ここで

static void Main(string[] args) 
{ 
    var xDoc = XDocument.Parse(
@"<root> 
    <product> 
     <cat1>ABC</cat1> 
     <cat2>123</cat2> 
    </product> 
    <product> 
     <cat1>XYZ</cat1> 
    </product> 
</root>"); 

    var query = from k in xDoc.Descendants("product") 
       select new 
       { 
        KategoriKod = (string)k.Element("cat1") + (string)k.Element("cat2") 
       }; 

    foreach(var k in query) 
    { 
     Console.WriteLine(k); 
    } 
} 

は結果です。 。 。

存在しない要素で.Valueを呼び出すときにNullReferenceExceptionsを避けるために、明示的な変換演算子(文字列へのキャスト)を使用しました。