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 樹狀結構序列化至 FileTextWriterXmlWriter

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

透過座標軸方法擷取 XML 資料

您可以使用座標軸方法來擷取屬性、子項目、子系項目以及祖系項目。 LINQ to XML 查詢會以座標軸方法運作,且提供數種具彈性的強大方式導覽與處理 XML 樹狀結構。

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

查詢 XML 樹狀結構

您可以撰寫 LINQ to XML 查詢,從 XML 樹狀結構中擷取資料。

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

修改 XML 樹狀結構

您可以用各種方式修改元素,包括變更其內容或屬性。 您也可以從其父代移除項目。

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

另請參閱