XElement 类概述

XElement 类是 LINQ to XML 中的基础类之一。 它表示一个 XML 元素。 以下列表显示了使用此类可执行的内容:

  • 创建元素。
  • 更改元素的内容。
  • 添加、更改或删除子元素。
  • 将属性添加到元素。
  • 以文本形式序列化元素的内容。

还可以与 System.Xml 中的其他类(例如 XmlReaderXmlWriterXslCompiledTransform)进行互操作。

本文描述 XElement 类提供的功能。

构造 XML 树

可以使用各种方式构造 XML 树,包括以下方式:

  • 可以在代码中构造 XML 树。 有关详细信息,请参见 XML 树
  • 可以从包括 TextReader、文本文件或 Web 地址 (URL) 在内的各种源解析 XML。 有关详细信息,请参阅 解析 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 树序列化为 FileTextWriterXmlWriter

有关详细信息,请参阅 序列化 XML 树

通过轴方法检索 XML 数据

可以使用轴方法检索属性、子元素、子代元素和上级元素。 LINQ to XML 查询对轴方法进行操作,并提供了多种灵活而有效的方法导航和处理 XML 树。

有关详细信息,请参阅 LINQ to XML 轴概述

查询 XML 树

可以编写从 XML 树提取数据的 LINQ to XML 查询。

有关详细信息,请参阅 查询 XML 树概述

修改 XML 树

可以通过各种方式修改元素,例如更改元素的内容或属性。 还可以从元素的父级移除元素。

有关详细信息,请参见 修改 XML 树

另请参阅