Share via


Visual Basic 中的 LINQ to XML 概觀

Visual Basic 會透過 XML 常值 (Literal) 和 XML 軸屬性,提供 LINQ to XML 支援。 這可讓您使用既熟悉又方便的語法,在 Visual Basic 程式碼中處理 XML。「XML 常值」(XML Literal) 可讓您在程式碼中直接包含 XML。 「XML 軸屬性」(XML Axis Property) 可讓您存取 XML 常值的子節點、子代 (Descendant) 節點和屬性。 如需詳細資訊,請參閱XML 常值概觀 (Visual Basic)在 Visual Basic 中存取 XML

LINQ to XML 是特別為了利用 Language-Integrated Query (LINQ) 所設計的記憶體中 XML 程式設計 API。 雖然您可以直接呼叫 LINQ API,但只有 Visual Basic 可讓您宣告 XML 常值及直接存取 XML 軸屬性。

注意事項注意事項

ASP.NET 網頁的宣告式程式碼中不支援 XML 常值和 XML 軸屬性。若要使用 Visual Basic XML 功能,請將您的程式碼放在 ASP.NET 應用程式的程式碼後置頁面中。

視訊的連結 如需相關示範影片,請參閱如何開始使用 LINQ to XML? (英文) 以及如何使用 LINQ to XML 建立 Excel 試算表? (英文)。

建立 XML

有兩種方式可以在 Visual Basic 中建立 XML 樹狀結構。 您可以直接在程式碼中宣告 XML 常值,也可以使用 LINQ API 建立樹狀結構。 這兩個處理序都可讓程式碼反映出 XML 樹狀結構的最終結構。 例如,下列程式碼範例會建立 XML 項目:

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

如需詳細資訊,請參閱在 Visual Basic 中建立 XML

存取和巡覽 XML

Visual Basic 所提供的 XML 軸屬性可用以存取和巡覽 XML 結構。 這些屬性可讓您經由指定 XML 子項目名稱,存取 XML 項目和屬性。 此外,您也可以明確地呼叫用以巡覽及尋找項目和屬性的 LINQ 方法。 例如,下列程式碼範例會使用 XML 軸屬性來參考 XML 項目的屬性和子項目。 此程式碼範例會使用 LINQ 查詢來擷取子項目並將其輸出為 XML 項目,也就是有效地執行轉換。

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix. 

        Dim contact = 
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes = 
          <phoneTypes>
              <%= From phone In contact.<ns:phone> 
                  Select <type><%= phone.@ns:type %></type> 
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

如需詳細資訊,請參閱在 Visual Basic 中存取 XML

XML 命名空間

Visual Basic 可讓您使用 Imports 陳述式,指定全域 XML 命名空間的別名。 下列範例顯示如何使用 Imports 陳述式來匯入 XML 命名空間:

Imports <xmlns:ns="http://someNamespace">

當您存取 XML 軸屬性並宣告 XML 文件和項目的 XML 常值時,可以使用 XML 命名空間別名。

您可以使用 GetXmlNamespace 運算子 (Visual Basic)來擷取特定命名空間前置字元的 XNamespace 物件。

如需詳細資訊,請參閱 Imports 陳述式 (XML 命名空間)

Bb384460.collapse_all(zh-tw,VS.110).gif在 XML 常值中使用 XML 命名空間

下列範例顯示如何建立會使用全域命名空間 ns 的 XElement 物件:

Dim contact1 As XElement = 
    <ns:contact>
        <ns:name>Patrick Hines</ns:name>
        <ns:phone type="home">206-555-0144</ns:phone>
        <ns:phone type="work">425-555-0145</ns:phone>
    </ns:contact>

Console.WriteLine(contact1)

Visual Basic 編譯器會使用 xmlns 屬性,將包含 XML 命名空間別名的 XML 常值轉譯成採用 XML 標記法的同等程式碼,以便使用 XML 命名空間。 編譯之後,上一節範例中的程式碼基本上會產生與下列範例相同的可執行程式碼:

Dim contact2 As XElement = 
    <ns1:contact xmlns:ns1="http://someNamespace">
        <ns1:name>Patrick Hines</ns1:name>
        <ns1:phone type="home">206-555-0144</ns1:phone>
        <ns1:phone type="work">425-555-0145</ns1:phone>
    </ns1:contact>

Console.WriteLine(contact2)

Bb384460.collapse_all(zh-tw,VS.110).gif在 XML 軸屬性中使用 XML 命名空間

在 XML 常值中宣告的 XML 命名空間無法用於 XML 軸屬性中。 但是,全域命名空間則可用於 XML 軸屬性。 使用冒號來分隔 XML 命名空間前置字元與區域項目名稱。 下列為範例:

Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)

請參閱

其他資源

Visual Basic 中的 XML

在 Visual Basic 中建立 XML

在 Visual Basic 中存取 XML

在 Visual Basic 中管理 XML