共用方式為


XElement 類別概觀

類別 XElement 是LINQ to XML中的其中一個基本類別。 它表示一個 XML 元素。 下列清單顯示您可以使用此類別的內容:

  • 建立元素。
  • 變更項目的內容。
  • 新增、變更或刪除子專案。
  • 將屬性添加到元素。
  • 以文字形式串行化項目的內容。

您也可以在 中 System.Xml與其他類別互作,例如 XmlReaderXmlWriterXslCompiledTransform

本文說明 類別所提供的 XElement 功能。

建構 XML 樹狀結構

您可以透過不同的方式建構 XML 樹狀結構,包括下列各項:

  • 您可以在程式代碼中建構 XML 樹狀結構。 如需詳細資訊,請參閱 XML 樹狀結構
  • 您可以從各種來源剖析 XML,包括 TextReader、文本檔或網址 (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、、 TextWriterXmlWriter

如需詳細資訊,請參閱 串行化 XML 樹狀結構

透過軸方法擷取 XML 數據

您可以使用軸方法來擷取屬性、子元素、子系元素和祖系元素。 LINQ to XML 查詢會在軸方法上運作,並提供數種彈性且功能強大的方法來巡覽及處理 XML 樹狀結構。

如需詳細資訊,請參閱 LINQ to XML 軸概觀

查詢 XML 樹狀結構

您可以撰寫 LINQ to XML 查詢,以從 XML 樹狀結構擷取數據。

如需詳細資訊,請參閱 查詢 XML 樹狀結構概觀

修改 XML 樹狀結構

您可以透過不同的方式修改元素,包括變更其內容或屬性。 您也可以從其父元素中移除一個元素。

如需詳細資訊,請參閱 修改 XML 樹狀結構

另請參閱