JSRUN 用代码说话

XML处理

编辑教程

VB.Net-XML处理

可扩展标记语言(XML)是一种非常通用的HTML或SGML的标记语言。这是全球联盟推荐的,可作为开放标准。.Net

框架中的System.Xml命名空间包含用于处理XML文档的类。 。以下是System.Xml命名空间中常用的一些类。

SN 描述
1 XmlAttribute 表示属性。属性的有效值和替换值在文档类型定义(DTD)或模式中定义。
2 XmlCDataSection 表示一个CDATA部分。
3 XmlCharacterData 提供由几个类使用的文本处理方法。
4 XML评论 表示一个XML注释的内容。
5 XmlConvert 对XML名称进行编码和解码,并在公共语言运行时类型和XML模式定义语言(XSD)类型之间进行转换的方法。转换数据类型时,返回的值与语言环境无关。
6 Xml声明 表示XML声明摘要<?xml版本='1.0'...?>。
7 XmlDictionary 实现一本。字典搜索用来优化的Windows 通信基础 (WCF)的XML 读取器/编写器实现。
8 XmlDictionaryReader Windows Communication Foundation(WCF)从XmlReader派生来进行序列化和反序列化的抽象类。
9 XmlDictionaryWriter 表示Windows Communication Foundation(WCF)从XmlWriter派生来进行序列化和反序列化的抽象类。
10 XmlDocument 表示XML文档。
11 XmlDocumentFragment 表示对树插入操作有用的轻量级对象。
12 XmlDocumentType 表示文档类型声明。
13 XmlElement 表示一个元素。
14 XmlEntity 表示一个实体声明,如<!ENTITY ...>。
15 XmlEntityReference 表示一个实体引用引用。
16 XmlException 返回有关最后一个异常的详细信息。
17 Xml实施 定义一个XmlDocument对象的一部分。
18 XmlLinkedNode 获取此基线之前或之后的例程。
19 XmlNode 表示XML文档中的个别例程。
20 XmlNodeList 表示摘要的有序集合。
21 XmlNodeReader 表示提供对XmlNode中的XML数据的快速,非缓存转发访问的阅读器。
22 XmlNotation 表示一个注释声明,如<!NOTATION ...>。
23 XmlParserContext 提供XmlReader解析XML片段所需的所有其他信息。
24 XmlProcessingInstruction 表示处理指令,XML定义为在文档的文本中保留处理器特定的信息。
25 XmlQualifiedName 表示一个XML定义名称。
26 XmlReader 表示一个阅读器,提供了快速,非缓存,只进到XML数据访问。
27 XmlReaderSettings 指定一组要在Create方法创建的XmlReader对象上支持的要素。
28 XmlResolver 解析由统一资源标识符(URI)命名的外部XML资源。
29 XmlSecureResolver 通过XmlResolver对象并限制XmlResolver可以访问的资源来保护XmlResolver的另一个实现。
30 XmlSignificantWhitespace 表示混合内容例程中的标记之间或xml:space ='preserve'范围内的空白空间中的空间。这也称为有效的空白空间。
31 XmlText 表示元素或属性的文本内容。
32 XmlTextReader 表示提供对XML数据的快速,非缓存,仅转发访问的阅读器。
33 XmlTextWriter 代表作家提供了一个快速,非缓存,只进生成包含符合W3C可扩展标记语言(XML)1.0和XML中建议的命名空间XML数据流或文件的方式。
34 XmlUrlResolver 解析由统一资源标识符(URI)命名的外部XML资源。
35 Xml空白 代表元素内容中的空白。
36 XmlWriter 表示提供快速,非缓存,仅转发方式生成包含XML数据的流或文件的写入程序。
37 XmlWriterSettings 指定一组要在XmlWriter.Create方法创建的XmlWriter对象上支持的要素。

XML解析器的API

XML

的简单API(SAX):在这里,您注册的目标的事件的发生,然后让解析器继续处理文档。这在文档很文件

对象模型(DOM)API:这是全球联盟推荐的,其中整个文件被读入存储器并以分层(基于树)的形式存储以表示XML文档的所有特征

。SAX不能像使用大文件时DOM那样快速地处理信息。替换,使用DOM可以真正地杀死你的资源,特别是如果

有用很多小文件。SAX是替换的,而DOM允许更改XML文件。由于这两个不同的API字形互补,没有理由你不能使用它们两个大项目。

对于所有的XML代码示例,让我们使用一个简单的XML文件movies.xml作为输入:

<?xml version="1.0"?>

<collection shelf="New Arrivals">
<movie title="Enemy Behind">
   <type>War, Thriller</type>
   <format>DVD</format>
   <year>2003</year>
   <rating>PG</rating>
   <stars>10</stars>
   <description>Talk about a US-Japan war</description>
</movie>
<movie title="Transformers">
   <type>Anime, Science Fiction</type>
   <format>DVD</format>
   <year>1989</year>
   <rating>R</rating>
   <stars>8</stars>
   <description>A schientific fiction</description>
</movie>
   <movie title="Trigun">
   <type>Anime, Action</type>
   <format>DVD</format>
   <episodes>4</episodes>
   <rating>PG</rating>
   <stars>10</stars>
   <description>Vash the Stampede!</description>
</movie>
<movie title="Ishtar">
   <type>Comedy</type>
   <format>VHS</format>
   <rating>PG</rating>
   <stars>2</stars>
   <description>Viewable boredom</description>
</movie>
</collection>

解析XML使用SAX API

在SAX模型中,使用XmlReader和XmlWriter类来处理XML数据

。XmlReader类用于以快速,仅向前和非缓存方式读取XML数据。它读取XML文档或流。


示例1

此示例演示从文件movies.xml中读取XML数据。

执行以下步骤:

  • 将movies.xml文件添加到应用程序的bin \调试文件夹中。

  • 在Form1.vb文件中引入System.Xml命名空间。

  • 在表单中添加标签,使其文字更改为“ Movies Galore”。

  • 添加三个列表框和三个按钮,以显示来自xml文件的电影的标题,类型和描述。

  • 使用代码编辑器窗口添加以下代码。

Imports System.Xml
Public Class Form1

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      ListBox1().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "movie" Then
              ListBox1.Items.Add(xr.GetAttribute(0))
          End If
      Loop
   End Sub
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      ListBox2().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "type" Then
              ListBox2.Items.Add(xr.ReadElementString)
          Else
              xr.Read()
          End If
      Loop
   End Sub
   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
      ListBox3().Items.Clear()
      Dim xr As XmlReader = XmlReader.Create("movies.xml")
      Do While xr.Read()
          If xr.NodeType = XmlNodeType.Element AndAlso xr.Name = "description" Then
              ListBox3.Items.Add(xr.ReadElementString)
          Else
              xr.Read()
          End If
      Loop
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。单击按钮将显示文件中电影的标题,类型和描述。

VB.Net XML处理示例1

XmlWriter类用于将XML数据写入流,文件或TextWriter对象。它也以只向前,非缓存的方式工作。

示例2

让我们通过在运行时添加一些数据来创建一个XML文件。执行以下步骤:

  • 在上方中添加WebBrowser控件和按钮控件。

  • 将按钮的文本属性更改为显示作者文件。

  • 在代码编辑器中添加以下代码。

Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs)Handles Button1.Click
      Dim xws As XmlWriterSettings = New XmlWriterSettings()
      xws.Indent = True
      xws.NewLineOnAttributes = True
      Dim xw As XmlWriter = XmlWriter.Create("authors.xml", xws)
      xw.WriteStartDocument()
      xw.WriteStartElement("Authors")
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "1")
      xw.WriteElementString("fname", "Zara")
      xw.WriteElementString("lname", "Ali")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "2")
      xw.WriteElementString("fname", "Priya")
      xw.WriteElementString("lname", "Sharma")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "3")
      xw.WriteElementString("fname", "Anshuman")
      xw.WriteElementString("lname", "Mohan")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "4")
      xw.WriteElementString("fname", "Bibhuti")
      xw.WriteElementString("lname", "Banerjee")
      xw.WriteEndElement()
      xw.WriteStartElement("author")
      xw.WriteAttributeString("code", "5")
      xw.WriteElementString("fname", "Riyan")
      xw.WriteElementString("lname", "Sengupta")
      xw.WriteEndElement()
      xw.WriteEndElement()
      xw.WriteEndDocument()
      xw.Flush()
      xw.Close()
      WebBrowser1.Url = New Uri(AppDomain.CurrentDomain.BaseDirectory +"authors.xml")
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。单击显示作者文件将在Web浏览器上显示新创建的authors.xml文件。

VB.Net XML处理示例2


使用DOM API解析XML

XmlDocument类用于实现.Net框架的XML DOM解析器。并且允许您通过插入,删除或更新文档中的数据来修改现有的文档。的XML文档。

以下是XmlDocument类的一些常用方法:

SN 方法名称 说明
1 AppendChild 将指定的补充添加到此下游的子节点列表的末尾。
2 CreateAttribute(字符串) 使用指定的名称创建XmlAttribute。
3 创建评论 创建包含指定数据的XmlComment。
4 CreateDefaultAttribute 创建具有指定前缀,本地名称和命名空间URI的属性。
5 CreateElement(字符串) 创建具有指定名称的元素。
6 CreateNode(字符串,字符串,字符串) 创建具有指定摘要类型,名称和名称空间URI的XmlNode。
7 CreateNode(XmlNodeType,字符串,字符串) 创建具有指定的XmlNodeType,名称和名称空间URI的XmlNode。
8 CreateNode(XmlNodeType,字符串,字符串,字符串) 创建具有指定的XmlNodeType,前缀,名称和NamespaceURI的XmlNode。
9 CreateProcessingInstruction 创建具有指定名称和数据的XmlProcessingInstruction。
10 CreateSignificantWhitespace 创建一个XmlSignificantWhitespace中断。
11 createTextNode 创建具有指定文本的XMLTEXT。
12 创建空白 创建一个XmlWhitespace推理。
13 CreateXmlDeclaration 创建一个具有指定值的XmlDeclaration中断。
14 GetElementById 获取具有指定ID的XmlElement。
15 GetElementsByTagName(String) 返回一个包含与指定名称匹配的所有后代元素的列表的XmlNodeList。
16 GetElementsByTagName(字符串,字符串) 返回一个包含与指定名称匹配的所有后代元素的列表的XmlNodeList。
17 插入后 在指定的引用摘要之后立即插入指定的摘要。
18 插入前 在指定的引用摘要之前插入指定的摘要。
19 负载(流) 从指定的流装载XML文档。
20 负载(字符串) 从指定的TextReader加载XML文档。
21 加载(TextReader) 从指定的TextReader加载XML文档。
22 加载(XmlReader) 从指定的XmlReader加载XML文档。
23 加载Xml 从指定的字符串加载XML文档。
24 PrependChild 将指定的补充添加到此下游的子节点列表的开头。
25 读节点 基于XmlReader中的信息创建XmlNode对象。读取器必须位于例程或属性上。
26 移除所有 删除当前例程的所有子例程和/或属性。
27 RemoveChild 删除指定的子例程。
28 ReplaceChild 将子例程oldChild替换为newChild例程。
29 保存(流) 保存XML文档到指定的流。
30 保存(字符串) 将XML文档保存到指定的文件。
31 保存(TextWriter) 将XML文档保存到指定的TextWriter。
32 保存(XmlWriter) 将XML文档保存到指定的XmlWriter。

示例3

在本示例中,让我们在xml文档authors.xml中插入一些新节点,然后在列表框中显示所有作者的名字。

执行以下步骤:

  • 将authors.xml文件添加到应用程序的bin / Debug文件夹中(如果您已经尝试了最后一个示例,应该在那里)

  • 导入System.Xml命名空间

  • 在表单中添加列表框和按钮控件,并将按钮控件的text属性设置为“显示作者”。

  • 使用代码编辑器添加以下代码。

Imports System.Xml
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.   
      Me.Text = "tutorialspoint.com"
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      ListBox1.Items.Clear()
      Dim xd As XmlDocument = New XmlDocument()
      xd.Load("authors.xml")
      Dim newAuthor As XmlElement = xd.CreateElement("author")
      newAuthor.SetAttribute("code", "6")
      Dim fn As XmlElement = xd.CreateElement("fname")
      fn.InnerText = "Bikram"
      newAuthor.AppendChild(fn)
      Dim ln As XmlElement = xd.CreateElement("lname")
      ln.InnerText = "Seth"
      newAuthor.AppendChild(ln)
      xd.DocumentElement.AppendChild(newAuthor)
      Dim tr As XmlTextWriter = New XmlTextWriter("movies.xml", Nothing)
      tr.Formatting = Formatting.Indented
      xd.WriteContentTo(tr)
      tr.Close()
      Dim nl As XmlNodeList = xd.GetElementsByTagName("fname")
      For Each node As XmlNode In nl
          ListBox1.Items.Add(node.InnerText)
      Next node
   End Sub
End Class

使用Microsoft Visual Studio工具栏上的“开始”按钮执行并运行上述代码。 单击“显示作者”按钮将显示所有作者的名字,包括我们在运行时添加的作者。

VB.Net XML处理示例3


JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟