XML 元素文本 (Visual Basic)
表示 XElement 对象的文本。
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
部件
术语 |
定义 |
< |
必选。 打开元素开始标记。 |
name |
必选。 元素的名称。 格式为以下格式之一:
组成部分说明
ePrefix 可选。元素的 XML 命名空间前缀。必须是在文件中或项目级别上通过 Imports 语句定义的全局 XML 命名空间,或者是在此元素或父元素中定义的局部 XML 命名空间。
eName 必选。元素的名称。格式为以下格式之一:
|
attributeList |
可选。 在文本中声明的特性的列表。 attribute [ attribute ... ] 每个 attribute 都具有以下语法之一:
组成部分说明
aPrefix 可选。特性的 XML 命名空间前缀。必须是通过 Imports 语句定义的全局 XML 命名空间,或者是在此元素或父元素中定义的局部 XML 命名空间。
aName 必选。特性名。格式为以下格式之一:
aValue 可选。特性的值。格式为以下格式之一:
|
/> |
可选。 指示元素为空元素,不包含任何内容。 |
> |
必选。 结束开始标记或空元素标记。 |
elementContents |
可选。 元素的内容。 content [ content ... ] 每个 content 都可以为下列内容之一:
|
</[name]> |
可选。 表示元素的结束标记。 嵌入式表达式的结果不能作为可选的 name 参数。 |
返回值
一个 XElement 对象。
备注
使用 XML 元素文本语法可以在代码中创建 XElement 对象。
提示
XML 文本可以跨多个行,而无需使用行继续符。 由于具有这一特点,因此可以复制 XML 文档中的内容,将该内容直接粘贴到 Visual Basic 程序中。
使用形式为 <%= exp %> 的嵌入式表达式可以将动态信息添加到 XML 元素文本中。 有关更多信息,请参见 XML 中的嵌入式表达式 (Visual Basic)。
Visual Basic 编译器将 XML 元素文本转换为对 XElement 构造函数的调用,如果需要,还可转换为对 XAttribute 构造函数的调用。
XML 命名空间
如果必须在代码中通过同一命名空间的元素多次创建 XML 文本,XML 命名空间前缀会十分有用。 可以使用全局 XML 命名空间前缀(使用 Imports 语句定义),也可以使用局部前缀(使用 xmlns:xmlPrefix="xmlNamespace" 特性语法定义)。 有关更多信息,请参见 Imports 语句(XML 命名空间)。
与 XML 命名空间的范围规则一样,局部前缀优先于全局前缀。 但是,如果 XML 文本定义了 XML 命名空间,则该命名空间不能用于嵌入式表达式中的表达式。 嵌入式表达式只能访问全局 XML 命名空间。
在生成的代码中,Visual Basic 编译器将 XML 文本所用的每个全局 XML 命名空间都转换为一个局部命名空间定义。 未使用的全局 XML 命名空间不会出现在生成的代码中。
示例
下面的示例演示如何创建一个简单的 XML 元素,该元素具有两个嵌套的空元素。
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
该示例显示以下文本。 请注意,文本保留了空元素的结构。
<outer>
<inner1></inner1>
<inner2 />
</outer>
下面的示例演示如何使用嵌入式表达式命名元素和创建特性。
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" />
下面的示例将 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 语句定义的命名空间。
请参见
参考
概念
已声明的 XML 元素和特性的名称 (Visual Basic)