<recordDataList>
<recordData className="RD1">
<a>dsfsd</a>
<b>dsfsd</b>
</recordData>
<recordData className="RD2">
<c>dsfsd</c>
<d>dsfsd</d>
</recordData>
</recordDataList>XML内容如上
我想在如下代码中获得className="RD2"中的c节点的值,该如何取,谢谢
var Data = XElement.Parse(xmlstring);//xmlstring为如上所示的XML内容
var query = from p in Data.Elements("recordData")
    where p.Attribute("className").Value == "RD1" || p.Attribute("className").Value == "RD2"
    select new { 
      A=(className=/*"RD2"中的c节点的值*/)
      };

解决方案 »

  1.   


    string[] result = xele.Descendants().Descendants().Where(w => w.Name == "c").Select(s => s.Value).ToArray();
      

  2.   

                XmlDocument doc = new XmlDocument();
                doc.Load("C:\a.xml");
                XmlNode rootNode = doc.SelectSingleNode("recordDataList");
                foreach (XmlNode node in rootNode.SelectNodes("recordData"))
                {
                    if (node.Attributes("className") == "RD2")
                    {
                        MessageBox.Show(node.SelectSingleNode("c"));
                    }            }
      

  3.   

                var elements = xe.Elements("recordData")
                             .Descendants("c")
                             .ToList();
                foreach (var me in elements)
                {
                    MessageBox.Show( me.Value);
                }