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

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

                                };

我想通过一个变量获取 xml 文件的两个元素。但我收到此错误

“‘字符串’不包含‘值’的定义”

有人帮忙吗?

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 回答