一个表示对象的 XElement 文字。
语法
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
部件
<
必填。 打开起始元素标记。
name
必填。 元素的名称。 格式为以下格式之一:
窗体
[ePrefix:]eName
的元素名称的文本文本,其中:部件 DESCRIPTION ePrefix
可选。 元素的 XML 命名空间前缀。 必须是使用文件中或项目级别的语句定义的 Imports
全局 XML 命名空间,或者是在此元素或父元素中定义的本地 XML 命名空间。eName
必填。 元素的名称。 格式为以下格式之一:
- 文本文本。 请参阅 声明的 XML 元素和属性的名称。
- 窗体<%= eNameExp %>
的嵌入表达式。eNameExp
类型必须是String
或隐式转换为XName的类型。窗体
<%= nameExp %>
的嵌入表达式。nameExp
类型必须是String
或隐式转换为XName的类型。 不允许在元素的结束标记中使用嵌入表达式。
attributeList
可选。 文本中声明的属性列表。
attribute [ attribute ... ]
每个
attribute
语法具有以下语法之一:窗体
[aPrefix:]aName=aValue
的属性赋值,其中:部件 DESCRIPTION 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
命名空间。