该 XElement 类是 LINQ to XML 中的基本类之一。 它表示 XML 元素。 以下列表显示了你可以用这个类完成的任务:
- 创建元素。
- 更改元素的内容。
- 添加、更改或删除子元素。
- 向元素添加属性。
- 以文本形式序列化元素的内容。
还可以与其他类 System.Xml进行互作,例如 XmlReader, XmlWriter和 XslCompiledTransform。
本文介绍 XElement 类所提供的功能。
构造 XML 树
可以采用不同的方式构造 XML 树,包括:
- 可以在代码中构造 XML 树。 有关详细信息,请参阅 XML 树。
- 可以从各种源分析 XML,包括 TextReader、文本文件或 Web 地址(URL)。 有关详细信息,请参阅 分析 XML。
- 可以使用 XmlReader 来填充树。 有关详细信息,请参阅 ReadFrom。
- 如果有一个模块可以向某个 XmlWriter模块写入内容,则可以使用 CreateWriter 该方法创建编写器,将编写器传递给模块,然后使用写入 XmlWriter 到该模块的内容来填充 XML 树。
以下示例创建一个树。 C# 版本使用嵌套元素创建。 可以在 Visual Basic 中使用相同的技术,但此示例使用 XML 文本。
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")
)
)
);
Dim contacts As XElement = _
<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone>206-555-0144</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
</Contact>
</Contacts>
还可以使用 LINQ to XML 查询填充 XML 树,如以下示例所示:
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);
Dim srcTree As XElement = _
<Root>
<Element>1</Element>
<Element>2</Element>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Dim xmlTree As XElement = _
<Root>
<Child>1</Child>
<Child>2</Child>
<%= From el In srcTree.Elements() _
Where el.Value > 2 _
Select el %>
</Root>
Console.WriteLine(xmlTree)
此示例生成以下输出:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
序列化 XML 树
可以将 XML 树序列化为 File、TextWriter 或 XmlWriter。
有关详细信息,请参阅 序列化 XML 树。
通过轴方法检索 XML 数据
可以使用轴方法检索属性、子元素、后代元素和上级元素。 LINQ to XML 查询在轴方法上运行,并提供多种灵活而强大的方法来浏览和处理 XML 树。
有关详细信息,请参阅 LINQ to XML 轴概述。
查询 XML 树
可以编写 LINQ to XML 查询,以便从 XML 树中提取数据。
有关详细信息,请参阅 查询 XML 树概述。
修改 XML 树
可以通过不同的方式修改元素,包括更改元素的内容或属性。 还可以从其父元素中删除元素。
有关详细信息,请参阅 修改 XML 树。