Visual Basic 透過 XML 常值和 XML 軸屬性,提供 LINQ to XML 的支援。 這可讓您使用熟悉且方便的語法,在 Visual Basic 程式代碼中使用 XML。 XML 常值 可讓您直接在程式碼中包含 XML。 XML 軸屬性 可讓您存取 XML 常值的子節點、後代節點和屬性。 如需詳細資訊,請參閱 XML 常值概觀 和 Visual Basic 中的存取 XML。
LINQ to XML 是記憶體內部 XML 程式設計 API,專為利用 Language-Integrated Query (LINQ) 而設計。 雖然您可以直接呼叫 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 可讓您使用 語句來指定全域 XML 命名空間的 Imports 別名。 下列範例示範如何使用 Imports 語句匯入 XML 命名空間:
Imports <xmlns:ns="http://someNamespace">
當您存取 XML 座標軸屬性並宣告 XML 檔和元素的 XML 常值時,可以使用 XML 命名空間別名。
您可以使用 XNamespace來擷取特定命名空間前置詞的物件。
如需詳細資訊,請參閱 Imports 陳述式(XML 命名空間)。
在 XML 常值中使用 XML 命名空間
下列範例示範如何建立 XElement 使用全域命名空間 ns的物件:
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 編譯程式會將包含 XML 命名空間別名的 XML 常值轉譯成使用 XML 命名空間的等效程式碼,並使用 XML 標記法來表示該命名空間xmlns屬性。 編譯時,上一節範例中的程式代碼基本上會產生與下列範例相同的可執行程序代碼:
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)
在 XML 軸屬性中使用 XML 命名空間
XML 常值中宣告的 XML 命名空間不適用於 XML 軸屬性。 不過,全域命名空間可以搭配 XML 軸屬性使用。 使用冒號來分隔 XML 命名空間前置詞與本地元素名稱。 以下是範例:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)