وقت بخیر دوستان، با آموزش برنامه نویسی (Visual Basic.NET (VB.NET از وب سایت پی وی لرن همراه هستیم. نحوه ی پردازش XML را با بررسی تجزیه XML با SAX API ادامه خواهیم داد. با ما همراه باشید.
در مدل SAX از کلاس های XmlReader و XmlWriter برای کار با داده های XML استفاده می کنید.
از کلاس XmlReader برای خواندن داده های XML به روشی سریع ، رو به جلو و غیر کَش استفاده می شود. این یک سند XML یا یک جریان را می خواند.
این مثال خواندن داده XML را از فایل fil.xml نشان می دهد.
مراحل زیر را انجام دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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 |
کد فوق را با استفاده از دکمه Start موجود در نوار ابزار Microsoft Visual Studio کامپایل و اجرا کنید. با کلیک بر روی دکمه ها ، عنوان ، نوع و توضیحات فیلم ها از فایل نمایش داده می شود.
از کلاس XmlWriter برای نوشتن داده های XML در یک جریان ، یک فایل یا یک شیء TextWriter استفاده می شود. همچنین به صورت رو به جلو و غیر کَش کار می کند.
اجازه دهید با اضافه کردن برخی از داده ها در زمان اجرا ، یک فایل XML ایجاد کنیم. مراحل زیر را انجام دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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 |
کد فوق را با استفاده از دکمه Start موجود در نوار ابزار Microsoft Visual Studio کامپایل و اجرا کنید. با کلیک بر روی Show Author File، فایل جدید authors.xml ایجاد شده در مرورگر وب نمایش داده می شود.
نحوه ی پردازش XML را با تجزیه XML با SAX API ادامه دادیم و مثالی را هم در این خصوص مورد بررسی قرار دادیم. در جلسه ی بعد نیز این مبحث را با تجزیه XML با API DOM ادامه خواهیم داد.