共用方式為


XML 常值概觀 (Visual Basic)

「XML 常值」(XML Literal) 可供您直接將 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

您可以將 Visual Basic 運算式內嵌至 XML 常值中。 在執行階段,您的應用程式會為每個常值各建立一個 LINQ to XML 物件,其中納入內嵌運算式的值。 這樣可讓您在 XML 常值中指定動態內容。 如需詳細資訊,請參閱 XML 中內嵌的運算式 (Visual Basic)

如需 XML 常值語法和 XML 1.0 語法之間差異的詳細資訊,請參閱 XML 常值和 XML 1.0 規格 (Visual Basic)

簡單常值

您可以在 Visual Basic 程式碼中建立 LINQ to XML 物件,只需輸入或貼上有效的 XML 即可。 XML 項目常值會傳回 XElement 物件。 如需詳細資訊,請參閱 XML 項目常值 (Visual Basic)XML 常值和 XML 1.0 規格 (Visual Basic)。 下列範例會建立具有數個子項目的 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 文件常值 (Visual Basic)

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 規格 (Visual Basic)

行接續字元

XML 常值可以在不需使用行接續字元 (空格-底線-ENTER 鍵順序) 的情況下跨越數行。 如此有利於比對程式碼中的 XML 常值與 XML 文件。

編譯器 (Compiler) 會將行接續字元視為 XML 常值的一部分。 因此,只有在空格-底線-ENTER 鍵順序適用於 LINQ to XML 物件時,才應使用該順序。

不過,如果在內嵌運算式中有多行運算式,這時就需使用行接續字元。 如需詳細資訊,請參閱 XML 中內嵌的運算式 (Visual Basic)

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 編譯器會將下列程式碼範例轉譯為呼叫 XProcessingInstruction 建構函式以建置 XML 版本指示、呼叫 XElement 建構函式以建置 <contact>、<name> 和 <phone>,以及呼叫 XAttribute 建構函式以建置 type 屬性。 更精確地說,以下列範例中提供的屬性而言,Visual Basic 編譯器會呼叫 #ctor(XName, Object) 建構函式兩次。 第一次呼叫會傳遞 type 值做為 name 參數,並傳遞 home 值做為 value 參數。 第二次呼叫同樣會傳遞 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>

請參閱

參考

XML 文件常值 (Visual Basic)

XML 項目常值 (Visual Basic)

XElement

概念

XML 中內嵌的運算式 (Visual Basic)

其他資源

在 Visual Basic 中建立 XML

XML 常值 (Visual Basic)