XML 字面值可讓您將 XML 直接併入 Visual Basic 程式代碼中。 XML 常值語法代表 LINQ to XML 物件,其類似於 XML 1.0 語法。 這可讓您更輕鬆地以程序設計方式建立 XML 元素和文件,因為您的程式代碼具有與最終 XML 相同的結構。
Visual Basic 會將 XML 常值編譯成 LINQ to XML 物件。 LINQ to XML 提供簡單的物件模型來建立和操作 XML,且此模型與 Language-Integrated Query(LINQ)整合良好。 如需詳細資訊,請參閱XElement。
您可以在 XML 常值中內嵌 Visual Basic 運算式。 在運行時間,您的應用程式會為每個常值建立 LINQ to XML 物件,併入內嵌表達式的值。 這可讓您在 XML 常值內指定動態內容。 如需詳細資訊,請參閱 XML 中的內嵌運算式。
如需 XML 常值語法與 XML 1.0 語法之間差異的詳細資訊,請參閱 XML 常值和 XML 1.0 規格。
簡單字面值
您可以在 Visual Basic 程式代碼中輸入或貼上有效的 XML,以建立 LINQ to XML 物件。 XML 元素常值會傳回一個 XElement 物件。 如需詳細資訊,請參閱 XML 元素常值 和 XML 常值和 XML 1.0 規格。 下列範例會建立具有數個子元素的 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>
您可以以 <?xml version="1.0"?> 啟動 XML 字面值來建立 XML 檔,如下列範例所示。 XML 文件實字會傳回 XDocument 物件。 如需詳細資訊,請參閱 XML 文件文字值。
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
備註
Visual Basic 中的 XML 常值語法與 XML 1.0 規格中的語法不同。 如需詳細資訊,請參閱 XML 常值和 XML 1.0 規格。
續行
XML 常值可以跨越多行,而不使用換行接續字元(空格加底線後按 Enter 的序列)。 這可讓您更輕鬆地比較程式碼中的 XML 常值與 XML 檔。
編譯程式會將行接續字元視為 XML 常值的一部分。 因此,只有當它屬於 LINQ to XML 物件時,才應該使用空格-下劃線-輸入序列。
不過,如果您有內嵌運算式中的多行表達式,則需要行接續字元。 如需詳細資訊,請參閱 XML 中的內嵌運算式。
在 XML 字面值中內嵌查詢
您可以在內嵌表示式中使用查詢。 當您這樣做時,查詢傳回的元素會新增至 XML 元素。 這可讓您將動態內容,例如使用者查詢的結果新增至 XML 常值。
例如,下列程式代碼會使用內嵌查詢,從陣列的成員 phoneNumbers2 建立 XML 元素,然後將這些元素新增為 contact2的子系。
Public Class XmlSamples
Public Sub Main()
' Initialize the objects.
Dim phoneNumbers2 As Phone() = {
New Phone("home", "206-555-0144"),
New Phone("work", "425-555-0145")}
' Convert the data contained in phoneNumbers2 to XML.
Dim contact2 =
<contact>
<name>Patrick Hines</name>
<%= From p In phoneNumbers2
Select <phone type=<%= p.Type %>><%= p.Number %></phone>
%>
</contact>
Console.WriteLine(contact2)
End Sub
End Class
Class Phone
Public Type As String
Public Number As String
Public Sub New(ByVal t As String, ByVal n As String)
Type = t
Number = n
End Sub
End Class
編譯程式如何從 XML 常值建立物件
Visual Basic 編譯程式會將 XML 常值轉譯成對等 LINQ to XML 建構函式的呼叫,以建置 LINQ to XML 物件。 例如,Visual Basic 編譯器會將以下程式碼範例轉譯為 XML 版本指令的 XProcessingInstruction 建構函式呼叫、XElement、<contact> 和 <name> 元素的 <phone> 建構函式呼叫,以及 XAttribute 屬性的 type 建構函式呼叫。 具體來說,假設下列範例中的屬性,Visual Basic 編譯程式會呼叫 XAttribute(XName, Object) 建構函式兩次。 第一個會傳遞 參數的值typename和 參數的值homevalue。 第二個也會為type參數傳遞值name,但為work參數傳遞值value。
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>