如何从的XDocument XML节点 [英] How to Get XML Node from XDocument

查看:295
本文介绍了如何从的XDocument XML节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从使用的XDocument LINQ获取XML元素?

How to Get an XML Element from XDocument using LINQ ?

假设我有一个XDocument命名xmlDoc中,其中如下所示:

Suppose I have an XDocument Named XMLDoc which is shown below:

<Contacts>
       <Node>
           <ID>123</ID>
           <Name>ABC</Name>
       </Node>
       <Node>
           <ID>124</ID>
           <Name>DEF</Name>
       </Node>
</Contacts>

XElement Contacts = from xml2 in XMLDoc.Elements("Contacts").Elements("Node")
                    where xml2.Element("ID").Value == variable
                    select xml2;

不过,我收到错误对象引用不设置......

But I am getting Error "Object Reference is NOT to set....."

如何从使用LINQ一个XML文件中的特定节点? 我想在这点更新一些值?

How to get a particular Node from a XML file using LINQ ? And I want to update some values in that node ?

它是如何可能????

How it is possible ????

在此先感谢.........

Thanks in advance.........

推荐答案

响应<一个href="http://stackoverflow.com/questions/752271/how-to-get-xml-node-from-xdocument/754766#754766">additional问题发布的OP。

的test.xml:

<?xml version="1.0" encoding="utf-8"?>
<Contacts>
  <Node>
    <ID>123</ID>
    <Name>ABC</Name>
  </Node>
  <Node>
    <ID>124</ID>
    <Name>DEF</Name>
  </Node>
</Contacts>

选择一个节点:

XDocument XMLDoc = XDocument.Load("test.xml");
string id = "123"; // id to be selected

XElement Contact = (from xml2 in XMLDoc.Descendants("Node")
                    where xml2.Element("ID").Value == id
                    select xml2).FirstOrDefault();

Console.WriteLine(Contact.ToString());

删除一个节点:

XDocument XMLDoc = XDocument.Load("test.xml");
string id = "123";

var Contact = (from xml2 in XMLDoc.Descendants("Node")
               where xml2.Element("ID").Value == id
               select xml2).FirstOrDefault();

Contact.Remove();
XMLDoc.Save("test.xml");

添加新节点:

XDocument XMLDoc = XDocument.Load("test.xml");

XElement newNode = new XElement("Node",
    new XElement("ID", "500"),
    new XElement("Name", "Whatever")
);

XMLDoc.Element("Contacts").Add(newNode);
XMLDoc.Save("test.xml");

还有一个很不错的教程解析XMLS 这里。希望它能帮助。

这篇关于如何从的XDocument XML节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆