1
var query = from k in xDoc.Descendants("product")
                               select
                                new
                                {

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

                                };

1つの変数でxmlファイルの2つの要素を取得したいと思います。しかし、私はこのエラーを受け取ります

"'文字列'には'値'の定義が含まれていません"

誰かがplzを助けます。

4

1 に答える 1

0

以下は私のために働きます:

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

結果は次のとおりです。

{KategoriKod = ABC123} {KategoriKod=XYZ}続行するには任意のキーを押してください。。。

存在しない要素で.Valueを呼び出すときに、NullReferenceExceptionsを回避するために、明示的な変換演算子(要素を文字列にキャストする)を使用したことに注意してください。

于 2012-03-27T00:50:03.090 に答える