从xml中获取特定节点

时间:2015-04-15 08:05:31

标签: xml model-view-controller

我想在模型中获取特定节点表单XML,我在下面编写了代码:

var gp = (from Trans_Mast in r2ge.Transcription_Master where Trans_Mast.Transcription_Id == Trans_ID && Trans_Mast.Entity_Id == Job_ID select Trans_Mast).Distinct();
        foreach (var g in gp)
        {
            p.group = g.Group_xml.ToString();
            XDocument xd = XDocument.Parse(p.group.ToString());

            var names = (xd.Descendants("Group").Where(c => c.Attribute("name").Value.Equals(GroupName))).ToList(); //xml particular data is fetch
            foreach (var item in names)
            {

            }
            data = xd.ToString();
            Transcription_Master Trans_Mast = r2ge.Transcription_Master.First(c => c.Transcription_Id == Trans_ID && c.Entity_Id == Job_ID);
            Int32 TransID = Convert.ToInt32(Trans_ID);
            r2ge.UpdateXml(TransID, data);
        }
从这里得到XMl

<Group name="Front0">
  <Room_type>Front</Room_type>
  <Dimension>Not available</Dimension>
  <Status>PENDING</Status>
  <Notes>None</Notes>
</Group>

现在我想从这个xml..how中仅获取状态来在foreach循环中执行此操作吗?

1 个答案:

答案 0 :(得分:0)

根据MSDN-docs,XElement(我假设是'item'的数据类型)也有Descendants方法。为什么不使用它来选择状态?

var status = item.Descendants("Status").FirstOrDefault();

此外,还有可以直接使用的Element方法:

var status = item.Element("Status");