分层元素Linq

时间:2012-03-04 20:44:10

标签: xml linq

尝试解析这个xml文件以获取Elements列表,但我在这方面遇到了困难。

这是我的Xml文件:

<STORES>
  <Stores1>
   <TEST>
    <ClientID>200</ClientID>
    <FormTypeID>101</FormTypeID>
   </TEST>
   <PROD>
    <ClientID>200</ClientID>
    <FormTypeID>102</FormTypeID>
   </PROD>
  </Stores1>
  <Stores2>
   <TEST>
    <ClientID>201</ClientID>
    <FormTypeID>717</FormTypeID>
   </TEST>
   <PROD>
    <ClientID>201</ClientID>
    <FormTypeID>719</FormTypeID>
   </PROD>
  </Stores2>
</STORES>

我想要完成的是取回所有子元素,具体取决于我为Elements方法调用提供的查询XNames参数。像这样

  var elements = (from x in xDoc.Elements("Stores1")
                      where x.Name.LocalName == "TEST"
                      select x).ToList();

因此列表将包含所有商店的TEST元素,如下所示:

<ClientID>200</ClientID>
<FormTypeID>101</FormTypeID>

此刻我没有得到任何回报。我做错了什么?

1 个答案:

答案 0 :(得分:2)

xDoc.Elements("Stores1")返回名为Stores1的文档的所有直接子元素。

你想要xDoc.Element("STORES").Element("Stores1").Elements("TEST").Elements();你不需要任何LINQ