【问题标题】:Fetch particular node from xml从 xml 中获取特定节点
【发布时间】:2015-04-15 08:05:30
【问题描述】:

我想为我在下面的代码中编写的模型获取特定的节点表单 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 中获取状态。如何在 foreach 循环中做到这一点?

【问题讨论】:

  • 我已经展示了代码..从整个 Xml 中它只获取匹配的组名部分,现在我想从该 xml 中获取状态节点并想要更改它..如何获取该节点 @RubenSteins跨度>
  • 你显示一个空循环。我没有看到任何试图获取状态节点的代码。为什么不尝试以与在循环上方获取名称列表相同的方式获取它?
  • 这就是我要问的......我无法使用上面的循环代码@RubenSteins 获取状态节点
  • 是的,我通过 foreach (var item in names) { item.Element("Status").Value = " "; } 并且它工作

标签: xml model-view-controller


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多