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
陳述式定義的命名空間。