XElement类表示XML文件中的一个元素(XML文件的基本组成部分)。一般情况下,每一个元素都必须包含其名称。它还可以包含以下4个组成内容:
q 元素(由XElement类表示),作为元素的子元素。
q 文本(由XText类表示)。
q 注释(由XComment类表示),将注释作为元素的一个子元素。
q XML处理指令(由XProcessingInstruction类表示),用来指定处理该XML文件的处理器。
XElement类提供了多个属性获取或操作XML文件中的元素,如获取元素名称的Name属性、获取元素的值的Value属性等。XElement类的属性如表所示。
表 XElement类的属性
属 性 | 说 明 |
Name | 元素的名称。 |
Value | 元素的值。 |
FirstAttribute | 元素的第一个属性。 |
LastAttribute | 元素的最后一个属性。 |
HasAttributes | 表示元素是否包含属性。 |
HasElements | 表示元素是否包含元素。 |
IsEmpty | 表示是否为一个空元素。 |
EmptySequence | 空的元素集合。 |
另外,XElement类还提供了多个方法操作XML文件中的元素,如设置元素的值的SetValue()方法、移除元素的所有节点和属性的RemoveAll()方法等。XElement类的方法如表所示。
表 XElement类的方法
方 法 | 说 明 |
AncestorsAndSelf() | 自身及其上级元素的集合。 |
DescendantsAndSelf() | 自身及其子元素元素的集合。 |
DescendantNodesAndSelf() | 自身及其子节点的集合。 |
Load() | 导入XML文件或片段,并创建为XElement类实例。 |
Parse() | 解释XML文件或片段,。 |
Save() | 将XElement实例保存为XML文件。 |
Attribute() | 获取指定的属性。 |
Attributes() | 获取该元素的所有属性。 |
GetDefaultNamespace() | 元素的默认命名空间。 |
GetNamespaceOfPrefix() | 与元素相关的命名空间的。 |
GetPrefixOfNamespace() | 获取与元素的命名控件的前缀。 |
ReplaceAll() | 替换该元素自动的属性。 |
RemoveAll() | 移除该元素的所有内容。 |
ReplaceAttributes() | 替换该元素的所有属性。 |
RemoveAttributes() | 移除元素的属性。 |
SetValue() | 设置该元素的值。 |
SetAttributeValue() | 设置该元素的属性的值。 |
SetElementValue() | 设置该元素的子元素的值。 |
下面的实例代码创建了名称为Advertisements的元素,并添加了两个子元素Ad。同时,Ad元素也包含Name和Url元素及其值。具体步骤如下。
(1)创建Advertisements元素及其子元素和值。
(2)使用网页显示Advertisements元素的内容。
(3)设置网页的输出格式为“text/xml”,并中止网页的输出操作。
private void XElementClass()
{ ///创建一个XML元素
XElement element = new XElement("Advertisements",
new XElement("Ad",
new XElement("Name","w3c"), ///添加元素Name
new XElement("Url","http://www.w3c.com") ///添加元素Url
),
new XElement("Ad",
new XElement("Name","Microsoft"), ///添加元素Name
new XElement("Url","http://www.microsoft.com") ///添加元素Url
)
);
///显示XML文件的内容
Response.Write(element);
///设置网页显示的形式为XML文件
Response.ContentType = "text/xml";
Response.End();
}
Sample_11项目中的LinqtoXmlBaseClass.aspx页面测试了上述实例代码(XElementClass()函数),测试结果如图所示。