如何从的XDocument XML节点 [英] How to Get XML Node from XDocument
本文介绍了如何从的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屋!
查看全文