共用方式為


HOW TO:篩選項目名稱 (LINQ to XML)

當您呼叫可傳回 XElementIEnumerable 的其中一個方法時,您可以篩選項目名稱。

範例

這個範例會擷取子代 (Descendant) 的集合,而且該集合會篩選成僅包含具有指定之名稱的子代。

此範例使用下列 XML 文件:範例 XML 檔案:典型的採購訂單 (LINQ to XML)

XElement po = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> items =
    from el in po.Descendants("ProductName")
    select el;
foreach(XElement prdName in items)
    Console.WriteLine(prdName.Name + ":" + (string) prdName);
Dim po As XElement = XElement.Load("PurchaseOrder.xml")
Dim items As IEnumerable(Of XElement) = _
    From el In po...<ProductName> _
    Select el
For Each prdName As XElement In items
    Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
Next

此程式碼會產生下列輸出:

ProductName:Lawnmower
ProductName:Baby Monitor

其他傳回 XElement 集合之 IEnumerable 的方法都依照相同的模式。 它們的簽章類似於 ElementsDescendants。 下列是具有類似方法簽章之方法的完整清單:

下列範例顯示命名空間中之 XML 的相同查詢。 如需詳細資訊,請參閱使用 XML 命名空間

此範例使用下列 XML 文件:XML 範例檔:命名空間中的典型採購訂單

XNamespace aw = "https://www.adventure-works.com";
XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
IEnumerable<XElement> items =
    from el in po.Descendants(aw + "ProductName")
    select el;
foreach (XElement prdName in items)
    Console.WriteLine(prdName.Name + ":" + (string)prdName);
Imports <xmlns:aw="https://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim po As XElement = XElement.Load("PurchaseOrderInNamespace.xml")
        Dim items As IEnumerable(Of XElement) = _
            From el In po...<aw:ProductName> _
            Select el
        For Each prdName As XElement In items
            Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
        Next
    End Sub
End Module

此程式碼會產生下列輸出:

{https://www.adventure-works.com}ProductName:Lawnmower
{https://www.adventure-works.com}ProductName:Baby Monitor

請參閱

概念

LINQ to XML 座標軸