分享方式:


XML 項目常值 (Visual Basic)

表示 XElement 物件的常值。

語法

<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>

組件

  • <

    必要。 開啟起始元素標記。

  • name

    必要。 元素名稱。 格式為下列其中一項:

    • 元素名稱的常值文字,格式為 [ePrefix:]eName,其中:

      部分 描述
      ePrefix 選擇性。 元素的 XML 命名空間前置詞。 必須是全域 XML 命名空間,該命名空間須以檔案或專案層級的 Imports 陳述式定義,或是在這個元素或父元素中定義的本機 XML 命名空間。
      eName 必要。 元素名稱。 格式為下列其中一項:

      - 常值文字。 請參閱宣告的 XML 元素和屬性的名稱
      - <%= eNameExp %> 格式的內嵌運算式。 eNameExp 的型別必須是 String,或是能隱含轉換成 XName 的型別。
    • <%= nameExp %> 格式的內嵌運算式。 nameExp 的型別必須是 String,或是能隱含轉換成 XName 的型別。 元素的結束標記中不允許使用內嵌運算式。

  • attributeList

    選擇性。 常值中宣告的屬性清單。

    attribute [ attribute ... ]

    每個 attribute 都會使用下列其中一個語法:

    • 屬性指派,格式為 [aPrefix:]aName=aValue,其中:

      部分 描述
      aPrefix 選擇性。 屬性的 XML 命名空間前置詞。 必須是全域 XML 命名空間,該命名空間須以 Imports 陳述式定義,或是在這個元素或父元素中定義的本機 XML 命名空間。
      aName 必要。 屬性的名稱。 格式為下列其中一項:

      - 常值文字。 請參閱宣告的 XML 元素和屬性的名稱
      - <%= aNameExp %> 格式的內嵌運算式。 aNameExp 的型別必須是 String,或是能隱含轉換成 XName 的型別。
      aValue 選擇性。 屬性的值。 格式為下列其中一項:

      - 常值文字,以引號括住。
      - <%= aValueExp %> 格式的內嵌運算式。 允許任何型別。
    • <%= aExp %> 格式的內嵌運算式。

  • />

    選擇性。 表示元素是空的元素,不含內容。

  • >

    必要。 結束開頭或空白元素標記。

  • elementContents

    選擇性。 元素的內容。

    content [ content ... ]

    每個 content 可以是下列其中一項:

    • 常值文字。 如果有任何常值文字,elementContents 中的所有空白字元都會變得重要。

    • <%= contentExp %> 格式的內嵌運算式。

    • XML 元素常值。

    • XML 註解常值。 請參閱 XML 註解常值

    • XML 處理指示常值。 請參閱 XML 處理指示常值

    • XML CDATA 常值。 請參閱 XML CDATA 常值

  • </[name]>

    選擇性。 表示元素的結束標記。 選擇性 name 參數是內嵌運算式的結果時不允許使用。

傳回值

XElement 物件。

備註

您可以使用 XML 元素常值語法,在程式碼中建立 XElement 物件。

注意

XML 常值不需使用行接續字元就能跨越多行。 這項功能可讓您從 XML 檔案複製內容,並直接貼到 Visual Basic 程式中。

<%= exp %> 格式的內嵌運算式可用來將動態資訊新增至 XML 元素常值。 如需詳細資訊,請參閱 XML中的內嵌運算式

Visual Basic 編譯器會將 XML 元素常值轉換成對 XElement 建構函式和 XAttribute 建構函式 (如有必要) 的呼叫。

XML 命名空間

如果必須在程式碼中使用相同命名空間多次建立具有元素的 XML 常值,XML 命名空間前置詞就很有用。 您可以使用全域 XML 命名空間前置詞 (需用 Imports 陳述式定義) 或 xmlns:xmlPrefix="xmlNamespace" 區域前置詞 (需用屬性語法定義)。 如需詳細資訊,請參閱 Imports 陳述式 (XML 命名空間)

根據 XML 命名空間的範圍規則,本機前置詞的優先順序高於全域前置詞。 不過,如果 XML 常值定義了 XML 命名空間,該命名空間就不能用於出現在內嵌運算式中的運算式。 內嵌運算式只能存取全域 XML 命名空間。

Visual Basic 編譯器會將 XML 常值所使用的每個全域 XML 命名空間,轉換成所產生程式碼中的本機命名空間定義。 未使用的全域 XML 命名空間不會出現在產生的程式碼中。

範例 1

下列範例示範如何建立具有兩個巢狀空元素的簡單 XML 元素。

Dim test1 As XElement = 
<outer>
    <inner1></inner1>
    <inner2/>
</outer>

Console.WriteLine(test1)

此範例顯示下列文字。 請注意,常值會保留空元素的結構。

<outer>
  <inner1></inner1>
  <inner2 />
</outer>

範例 2

下列範例示範如何使用內嵌運算式來為元素命名並建立屬性。

Dim elementType = "book"
Dim authorName = "My Author"
Dim attributeName1 = "year"
Dim attributeValue1 = 1999
Dim attributeName2 = "title"
Dim attributeValue2 = "My Book"

Dim book As XElement = 
<<%= elementType %>
    isbn="1234"
    author=<%= authorName %>
    <%= attributeName1 %>=<%= attributeValue1 %>
    <%= New XAttribute(attributeName2, attributeValue2) %>
/>

Console.WriteLine(book)

此程式碼顯示下列文字:

<book isbn="1234" author="My Author" year="1999" title="My Book" />

範例 3

下列範例會宣告 ns 作為 XML 命名空間前置詞。 接著會使用命名空間的前置詞來建立 XML 常值,並顯示元素的最終格式。

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

Class TestClass1

    Shared Sub TestPrefix()
        ' Create test using a global XML namespace prefix. 
        Dim inner2 = <ns:inner2/>

        Dim test = 
        <ns:outer>
            <ns:middle xmlns:ns="http://NewNamespace">
                <ns:inner1/>
                <%= inner2 %>
            </ns:middle>
        </ns:outer>

        ' Display test to see its final form. 
        Console.WriteLine(test)
    End Sub

End Class

此程式碼顯示下列文字:

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

請注意,編譯器會將全域 XML 命名空間的前置詞轉換成 XML 命名空間的前置詞定義。 <ns:middle> 元素會重新定義 <ns:inner1> 元素的 XML 命名空間前置詞。 不過 <ns:inner2> 元素會使用 Imports 陳述式定義的命名空間。

另請參閱