Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linq从xml检索数据时出现问题_C#_Xml_Linq_Linq To Xml - Fatal编程技术网

C# linq从xml检索数据时出现问题

C# linq从xml检索数据时出现问题,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我有xml从我想得到一些数据 XDocument loaded = XDocument.Load(@"c:\TERC.xml"); var query = (from c in loaded.Descendants("catalog") from r in c.Descendants("row") select (string)r.Element("Name")); 这将返回null的集合 我怎样才能修好它

我有xml从我想得到一些数据

XDocument loaded = XDocument.Load(@"c:\TERC.xml");


        var query = (from c in loaded.Descendants("catalog")
                 from r in c.Descendants("row")
                 select (string)r.Element("Name"));
这将返回null的集合

我怎样才能修好它

以下是xml:

<?xml version="1.0" encoding="UTF-8" ?> 
 <teryt>
 <catalog name="Compix">
 <row>
    <col name="NAME">Name1</col> 
    <col name="ID">12</col> 
    </row>
 <row>
    <col name="NAME">Name2</col> 
    <col name="ID">13</col> 
    </row>
 <row>
    <col name="NAME">Name3</col> 
    <col name="ID">14</col> 
    </row>  
</catalog>
</teryt>

名称1
12
姓名2
13
名字3
14

您可以尝试以下方法:

var query = (from c in loaded.Descendants("catalog")
                     from r in c.Descendants("row")
                     select (string)r.Value);
我假设您希望获取“col”节点内的数据。否则,请精确说明要检索的内容

希望这能有所帮助。

List query=(来自c中的loaded.substands(“catalog”)
List<string> query = (from c in loaded.Descendants("catalog")
                      from r in c.Descendants("row")
                      from col in r.Descendants("col").Where(col1 => 
                         col1.Attribute(XName.Get("name")).Value == "NAME")
                      select col.Value).ToList();
从c.中的r开始(“行”) 从r.后代中的列(“列”)。其中(col1=> col1.Attribute(XName.Get(“name”))。Value==“name”) 选择col.Value).ToList();
执行上述语句后,
query
包含以下字符串:

  • Name1
  • Name2
  • Name3

Name是
col
元素上的一个属性,您需要该元素的值,但查询中缺少该部分

        var query = (from c in loaded.Descendants("catalog")
                     from r in c.Descendants("row")
                     from col in r.Descendants("col")
                     select (string)r.Value).ToList<string>();
var query=(从c加载的.substands(“目录”)中)
从c.中的r开始(“行”)
来自r.后代中的col(“col”)
选择(字符串)r.Value).ToList();

对不起,我为我的xml添加了非常重要的值。这只是这个大xml的一部分,我不知道这对您来说是多么重要:/抱歉,我为我的xml添加了非常重要的值。这是这个大xml的唯一一部分,我不知道这对您来说是多么重要:/没问题,这很正常,我们不在您的代码中,所以我们不了解所有内容。我只是希望其中一些答案对您有所帮助。对不起,我为我的xml增加了非常重要的价值。它只是这个大xml的一部分,我不知道这对您来说是多么重要:/