تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
قراءة ملف xml
#1
اريد قراة ملف xml و اضافة العناصر الى ListView بيانات الملف 
إقتباس :<?xml version="1.0" encoding="utf-8"?>
<TEST>
  <Date Name="Ahmed" Age="20" Data="0" />
  <Date Name="Mohamed" Age="20" Data="0" />
</TEST>

استخدم هذا الكود للكتابة عدلت على الكود حيث يقراء الملف لاكن لا يعمل
كود :
   Public Function Read(listview As ListView, filePath As [String], fileName As [String]) As Boolean
       Dim fileStream As FileStream
       Dim streamReader As StreamReader
       Dim xmlTextReader As XmlTextReader
       Try
           fileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None)
           streamReader = New StreamReader(fileStream)
           xmlTextReader = New XmlTextReader(streamReader)
           Const SUBITEM1_POS As Integer = 0
           Const SUBITEM2_POS As Integer = 1
           Const SUBITEM3_POS As Integer = 2

           For i As Integer = 0 To listview.Items.Count - 1
               Dim currentSubItem1 As [String] = listview.Items(i).SubItems(SUBITEM1_POS).Text
               Dim currentSubItem2 As [String] = listview.Items(i).SubItems(SUBITEM2_POS).Text
               Dim currentSubItem3 As [String] = listview.Items(i).SubItems(SUBITEM3_POS).Text
               xmlTextReader.ReadStartElement("Date")
               xmlTextReader.ReadStartElement("Name")
               xmlTextReader.ReadStartElement("Age")
               xmlTextReader.ReadStartElement("Data")
               xmlTextReader.ReadEndElement()
           Next
           xmlTextReader.Close()

           Return True
       Catch ex As IOException

           Return False
       End Try
   End Function
إقتباس :With ListView1.Items.Add( xmlTextReader.ReadStartElement("Date"))

.Subitem.Add(    xmlTextReader.ReadStartElement("Age"))

بيانات listview 3 Column
الرد }}}}
تم الشكر بواسطة:
#2
يا أسامة،

هذا تعديل شامل
PHP كود :
Public Sub XmlFileToListView(listview As ListViewfileName As String)

   Dim reader As New System.Xml.XmlTextReader(fileName)
   Dim serialize As New Xml.Serialization.XmlSerializer(GetType(TEST))
   Dim deserialize As TEST serialize.Deserialize(reader)

   For Each d As [DateIn deserialize.Dates
       listview
.Items.Add(New ListViewItem(New String() {d.Named.Aged.Data}))
   Next

End Sub


Class TEST
   
<Xml.Serialization.XmlElement("Date")>
   Property Dates As New List(Of [Date])
End Class
Class [
Date]
   <XmlAttribute("Name")> Property Name As String
   
<XmlAttribute("Age")> Property Age As String
   
<XmlAttribute("Data")> Property Data As String
End 
Class 
الرد }}}}
تم الشكر بواسطة: أسامة , الكاتب
#3
(29-06-16, 04:42 PM)الوادي كتب : يا أسامة،

هذا تعديل شامل
PHP كود :
Public Sub XmlFileToListView(listview As ListViewfileName As String)

   Dim reader As New System.Xml.XmlTextReader(fileName)
   Dim serialize As New Xml.Serialization.XmlSerializer(GetType(TEST))
   Dim deserialize As TEST serialize.Deserialize(reader)

   For Each d As [DateIn deserialize.Dates
       listview
.Items.Add(New ListViewItem(New String() {d.Named.Aged.Data}))
   Next

End Sub


Class TEST
   
<Xml.Serialization.XmlElement("Date")>
   Property Dates As New List(Of [Date])
End Class
Class [
Date]
   <XmlAttribute("Name")> Property Name As String
   
<XmlAttribute("Age")> Property Age As String
   
<XmlAttribute("Data")> Property Data As String
End 
Class 
جزاك الله خيرا وزادك علما  عندى استفسار اخير اذا امكن يوجد مشكلة فى كود الكتابة 

كود :
Public Shared Function Wrire(listview As ListView, filePath As [String], fileName As [String]) As Boolean
       Dim fileStream As FileStream
       Dim streamWriter As StreamWriter
       Dim xmlTextWriter As XmlTextWriter
       Try
           fileStream = New FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None)
           streamWriter = New StreamWriter(fileStream)
           xmlTextWriter = New XmlTextWriter(streamWriter)
           xmlTextWriter.Formatting = Formatting.Indented
           xmlTextWriter.WriteStartDocument()
           xmlTextWriter.WriteStartElement("TEST")
           Const SUBITEM1_POS As Integer = 0
           Const SUBITEM2_POS As Integer = 1
           Const SUBITEM3_POS As Integer = 2
           For i As Integer = 0 To listview.Items.Count - 1
               Dim currentSubItem1 As [String] = listview.Items(i).SubItems(SUBITEM1_POS).Text
               Dim currentSubItem2 As [String] = listview.Items(i).SubItems(SUBITEM2_POS).Text
               Dim currentSubItem3 As [String] = listview.Items(i).SubItems(SUBITEM3_POS).Text
               xmlTextWriter.WriteStartElement("Date")
               xmlTextWriter.WriteAttributeString("Name", currentSubItem1.ToString())
               xmlTextWriter.WriteAttributeString("Age", currentSubItem2.ToString())
               xmlTextWriter.WriteAttributeString("Data", currentSubItem3.ToString())
               xmlTextWriter.WriteEndElement()
           Next
           xmlTextWriter.WriteEndDocument()
           xmlTextWriter.Flush()
           xmlTextWriter.Close()

           Return True
       Catch ex As IOException

           Return False
       End Try
   End Function


المشكلة الاولى الكود يحتاج انشاء ملف جديد عند الحفظ عندما عدلت علية للكتابة على الذى تم حفظة مسبقآ لا يكتب
ثانيآ عند الانتعاء من الحفظ شكل السطر يكون هكذا <Date Name="Ahmed" Age="20" Data="0" />
هل يمكن انهاء السطر بنفس كلمت البداية ليكون هكذا <Date Name="Ahmed" Age="20" Data="0" /Date>

ثالثآ فى كود القراءة هل يمكن اضافة صور الى listview حيث لكل اسم صورة فى ملف

اسف على المشاكل


الملفات المرفقة
.rar   XML.rar (الحجم : 40.17 ك ب / التحميلات : 11)
الرد }}}}
تم الشكر بواسطة:
#4
تعديل صغير هل يمكن الحفظ على هذا الشكل

كود :
<?xml version="1.0" encoding="utf-8"?>
<TEST>
<Date Name="Ahmed" Age="20">
<?Data="First"?>
<?Data="Second"?>
<?Data="Third"?>
</Date>
<Date Name="Mohamed" Age="22">
<?Data="First"?>
<?Data="Second"?>
<?Data="Third"?>
</Date>
</TEST>
معلومات Data فى ListBox
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم



بأمكانك قراءة الموضوع التالي: التعامل مع ملفات xml بلغتي C#&VB



تحياتي
الرد }}}}
تم الشكر بواسطة: الشاكي لله , الكاتب , أسامة
#6
(29-06-16, 10:59 PM)Sajad كتب : السلام عليكم



بأمكانك قراءة الموضوع التالي: التعامل مع ملفات xml بلغتي C#&VB



تحياتي

وعليكم السلام 
شكرآ اخى
الرد }}}}
تم الشكر بواسطة:
#7
واجهتنى مشكلة فى القراءة بعد حل مشكلة الكتابة

وجعل xml بهذا الشكل
إقتباس :<?xml version="1.0" encoding="utf-8"?>
<TEST>
<Date Name="Ahmed" Age="20">
<?Data="First"?>
<?Data="Second"?>
<?Data="Third"?>
</Date>
<Date Name="Mohamed" Age="22">
<?Data="First"?>
<?Data="Second"?>
<?Data="Third"?>
</Date>
الان لا يستطيع القراءة هل من حل ؟ حاولت كثير لاكن لم انجح
تم الحل بهذا الكود
كود :
       Using reader As XmlReader = XmlReader.Create("test.xml")
           While reader.Read()
               Dim Name As String = reader("Name")
               Dim Age As String = reader("Age")
               Dim Data As String = reader("Data")
               If Name IsNot Nothing Then
                   ListView1.Items.Add(New ListViewItem(New String() {Name, Age, Data}))
               End If
           End While
       End Using
الان يوجد مشكلة واحدة ان لا يستطيع قراءة ال Data
إقتباس :<?Data="First"?>
<?Data="Second"?>
<?Data="Third"?>
هل يمكن التعديل علية
الرد }}}}
تم الشكر بواسطة:
#8
http://vb4arb.com/vb/thread-14090.html
الرد }}}}
تم الشكر بواسطة: الوادي
#9
يا أسامة،

تعبني النوع XmlProcessingInstruction

PHP كود :
Using reader As XmlReader XmlReader.Create("test.xml")

Dim s As New List(Of String)

   While reader.Read()

       If reader.NodeType XmlNodeType.Element Then
           Dim mName 
As String reader("Name")
           Dim mAge As String reader("Age")
           'Dim mData As String = reader("Data")'

           If mName <> "" Then
               s
.Add(mName)
               s.Add(mAge)

           End If

       End If

       If reader.NodeType XmlNodeType.ProcessingInstruction Then
           If reader
.Name "Data" Then
               Dim valueStart 
As Integer reader.Value.IndexOf(Chr(34)) + 1
               Dim valueEnd 
As Integer reader.Value.LastIndexOf(Chr(34))
               Dim mData As String reader.Value.Substring(valueStartvalueEnd valueStart)
               s.Add(mData)
           End If
       End If

       If reader.NodeType XmlNodeType.EndElement Then
           If s
.Count 0 Then ListView1.Items.Add(New ListViewItem(s.ToArray))
           s.Clear()
       End If

   End While

End Using 
الرد }}}}
تم الشكر بواسطة: أسامة
#10
مشاركة لاخواني وبعد اذنهم جميعا :
مارايك اخي صاحب السؤال ان تستخدم اداة HtmlAgilityPack وتتعامل مع الملف كملف نصي؟؟
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة: أسامة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Photo بخصوص قراءة الباركود shwehdi4pc 11 295 10-11-16, 11:44 PM
آخر رد: محمود بكرى
  [VB.NET] ممكن طريقة قراءة ملف PDF سطر سطر و وضعه في Array الغلبان 8 236 25-06-16, 08:06 PM
آخر رد: الوادي
  مشكلة في قراءة البيانات من SQL server Incubus 6 317 15-04-16, 01:15 PM
آخر رد: Incubus
  هل يمكن قراءة سطر/كلمة معين من ملف text على سيرفر موقع أسامة 3 223 13-04-16, 01:52 AM
آخر رد: hassan
  قراءة ملف txt أسامة 0 154 25-12-15, 03:12 PM
آخر رد: أسامة
  [VB.NET] قراءة من ملف cmd محمد اسماعيل 2 205 16-12-15, 07:34 PM
آخر رد: محمد اسماعيل
  كود قراءة البيانات من ChekedBoxLis مبرمج 2015 0 275 22-03-15, 07:03 PM
آخر رد: مبرمج 2015
  رسالة خطاء تظهر عند قراءة ملف نصي aftfm 8 798 30-10-14, 12:28 AM
آخر رد: Dev Saeed
  قراءة ملف نصي الى DataGridView aftfm 1 380 11-07-14, 06:37 PM
آخر رد: aftfm
  [سؤال] قراءة MsysObjects surgam 4 640 28-06-14, 11:27 PM
آخر رد: surgam

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم