VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • XML 元素文本 (Visual Basic)

表示 XElement 对象的文本。

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

部件

术语

定义

<

必选。 打开元素开始标记。

name

必选。 元素的名称。 格式为以下格式之一:

  • 元素名称的文本,形式为 [ePrefix:]eName,其中:

 
组成部分说明
ePrefix 可选。元素的 XML 命名空间前缀。必须是在文件中或项目级别上通过 Imports 语句定义的全局 XML 命名空间,或者是在此元素或父元素中定义的局部 XML 命名空间。
eName 必选。元素的名称。格式为以下格式之一:
  • 文本。请参见已声明的 XML 元素和特性的名称 (Visual Basic)。

  • 形式为 <%= eNameExp %> 的嵌入式表达式。eNameExp 的类型必须为 String 或可隐式转换为 XName 的类型。

  • 形式为 <%= nameExp %> 的嵌入式表达式。 nameExp 的类型必须为 String 或可隐式转换为 XName 的类型。 在元素的结束标记中不允许使用嵌入式表达式。

attributeList

可选。 在文本中声明的特性的列表。

attribute [ attribute ... ]

每个 attribute 都具有以下语法之一:

  • 特性赋值,形式为 [aPrefix:]aName=aValue,其中:

 
组成部分说明
aPrefix 可选。特性的 XML 命名空间前缀。必须是通过 Imports 语句定义的全局 XML 命名空间,或者是在此元素或父元素中定义的局部 XML 命名空间。
aName 必选。特性名。格式为以下格式之一:
  • 文本。请参见已声明的 XML 元素和特性的名称 (Visual Basic)。

  • 形式为 <%= aNameExp %> 的嵌入式表达式。aNameExp 的类型必须为 String 或可隐式转换为 XName 的类型。

aValue 可选。特性的值。格式为以下格式之一:
  • 文本(在引号内)。

  • 形式为 <%= aValueExp %> 的嵌入式表达式。可以是任何类型。

  • 形式为 <%= aExp %> 的嵌入式表达式。

/>

可选。 指示元素为空元素,不包含任何内容。

>

必选。 结束开始标记或空元素标记。

elementContents

可选。 元素的内容。

content [ content ... ]

每个 content 都可以为下列内容之一:

  • 文本。 如果存在任何文本,则 elementContents 中的所有空白都是有意义的。

  • 形式为 <%= contentExp %> 的嵌入式表达式。

  • XML 元素文本。

  • XML 注释文本。 请参见XML 注释文本 (Visual Basic)。

  • XML 处理指令文本。 请参见XML 处理指令文本 (Visual Basic)。

  • XML CDATA 文本。 请参见XML CDATA 文本 (Visual Basic)。

</[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 元素,该元素具有两个嵌套的空元素。

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

Console.WriteLine(test1)

该示例显示以下文本。 请注意,文本保留了空元素的结构。

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

下面的示例演示如何使用嵌入式表达式命名元素和创建特性。

VB
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 文本并显示元素的最终形式。

VB
' 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 语句定义的命名空间。

 


原文链接:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/bb384832(v=vs.100)

相关教程