XElement(LINQ to XML )
XElement 类概述
更新:November 2007 XElement 类是 LINQ to XML 中的基础类之一。 它表示一个 XML 元素。 可以使用该类创建元素;更改元素内容;添加、更改或删除子元素;向元素中添加属性;或以文本格式序列化元素内容。 还可以与 System.Xml 中的其他类(例如 XmlReader、XmlWriter 和 XslCompiledTransform)进行互操作。
XElement 功能
本主题描述 XElement 类提供的功能。
构造 XML 树可以使用各种方式构造 XML 树,包括以下方式:
可以在代码中构造 XML 树。 有关更多信息,请参见创建 XML 树。
可以从包括 TextReader、文本文件或 Web 地址 (URL) 在内的各种源解析 XML。 有关更多信息,请参见分析 XML。
可以使用 XmlReader 来填充树。 有关更多信息,请参见 ReadFrom。
如果您有一个可以将内容写入 XmlWriter 的模块,则可以使用 CreateWriter 方法来创建编写器,将该编写器传递到该模块,然后使用写入 XmlWriter 的内容来填充 XML 树。
但是,创建 XML 树的最常见的方法如下:
VB
C#
C++
F#
JScript
复制
XElement contacts = new XElement("Contacts", new XElement("Contact", new XElement("Name", "Patrick Hines"), new XElement("Phone", "206-555-0144"), new XElement("Address", new XElement("Street1", "123 Main St"), new XElement("City", "Mercer Island"), new XElement("State", "WA"), new XElement("Postal", "68042") ) ) );
另一个创建 XML 树的十分常用的方法是使用 LINQ 查询的结果来填充 XML 树,如下面的示例所示:
VB
C#
C++
F#
JScript
复制
XElement srcTree = new XElement("Root", new XElement("Element", 1), new XElement("Element", 2), new XElement("Element", 3), new XElement("Element", 4), new XElement("Element", 5));XElement xmlTree = new XElement("Root", new XElement("Child", 1), new XElement("Child", 2), from el in srcTree.Elements() where (int)el > 2 select el);Console.WriteLine(xmlTree);
此示例产生以下输出:
复制
<Root> <Child>1</Child> <Child>2</Child> <Element>3</Element> <Element>4</Element> <Element>5</Element></Root>
//得到所有name字段的名字
private static void GetAllUsername(XElement xe)
{
var userName = from un in xe.Descendants("Name")
select un.Value;
foreach (var name in userName)
{
Console.WriteLine("name {0}" ,name);
}
}
//输出AGE是24的所有NODE
private static void GetAge(XElement xe)
{
var age = from c in xe.Descendants("Age")
where c.Value == "24"
select c;
foreach (var a in age)
Console.WriteLine("AGE: {0}", a);
}
//移除所有的Name字段
private static void deleteElement(XElement xe)
{
var user = from u in xe.Descendants("User")
select u;
foreach (var u in user)
{
var names = from name in u.Descendants("Name")
select name;
names.Remove();
}
}
更新:November 2007 XElement
XElement 功能
本主题描述 XElement
构造 XML 树可以使用各种方式构造 XML 树,包括以下方式:
VB
C#
C++
F#
JScript
复制
XElement contacts = new XElement("Contacts", new XElement("Contact", new XElement("Name", "Patrick Hines"), new XElement("Phone", "206-555-0144"), new XElement("Address", new XElement("Street1", "123 Main St"), new XElement("City", "Mercer Island"), new XElement("State", "WA"), new XElement("Postal", "68042") ) ) );
另一个创建 XML 树的十分常用的方法是使用 LINQ 查询的结果来填充 XML 树,如下面的示例所示:
VB
C#
C++
F#
JScript
复制
XElement srcTree = new XElement("Root", new XElement("Element", 1), new XElement("Element", 2), new XElement("Element", 3), new XElement("Element", 4), new XElement("Element", 5));XElement xmlTree = new XElement("Root", new XElement("Child", 1), new XElement("Child", 2), from el in srcTree.Elements() where (int)el > 2 select el);Console.WriteLine(xmlTree);
此示例产生以下输出:
复制
<Root> <Child>1</Child> <Child>2</Child> <Element>3</Element> <Element>4</Element> <Element>5</Element></Root>
//得到所有name字段的名字
private static void GetAllUsername(XElement xe)
{
var userName = from un in xe.Descendants("Name")
select un.Value;
foreach (var name in userName)
{
Console.WriteLine("name {0}" ,name);
}
}
//输出AGE是24的所有NODE
private static void GetAge(XElement xe)
{
var age = from c in xe.Descendants("Age")
where c.Value == "24"
select c;
foreach (var a in age)
Console.WriteLine("AGE: {0}", a);
}
//移除所有的Name字段
private static void deleteElement(XElement xe)
{
var user = from u in xe.Descendants("User")
select u;
foreach (var u in user)
{
var names = from name in u.Descendants("Name")
select name;
names.Remove();
}
}