共用方式為


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 命名空間前置詞。 必須是使用 Imports 語句定義的全域 XML 命名空間,或是在這個元素或父元素中定義的本機 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 定義的命名空間。

另請參閱