تقييم الموضوع :
  • 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 ك ب / التحميلات : 34)
الرد }}}
تم الشكر بواسطة:
#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 وتتعامل مع الملف كملف نصي؟؟
الرد }}}
تم الشكر بواسطة: أسامة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  أستفسار عن قراءة الاسطر altoki939 6 113 27-03-24, 10:07 AM
آخر رد: altoki939
  مشكله فى جهاز قراءة الباركود خالد كامل1 1 351 03-11-23, 06:42 AM
آخر رد: Taha Okla
  [VB.NET] مشكله في قراءة ملصقات الباركود CoderMM 6 1,808 15-03-23, 06:27 PM
آخر رد: المتألق9
  قراءة البريد الالكتروني باستخدام الفيجوال بازيك صبري زينوبي 0 378 24-08-22, 05:47 PM
آخر رد: صبري زينوبي
  قراءة خلية من الداتا قريد بصيغة نص aftfm 0 681 21-08-22, 05:22 AM
آخر رد: aftfm
  قراءة البيانات من برنامج البصمة strongriseman 2 1,301 29-07-22, 02:23 AM
آخر رد: ابراهيم ايبو
Exclamation قراءة بيانات الصورة من قاعدة بيانات أكسس إلى أداة PictureBox أبو خالد الشكري 15 1,846 20-07-22, 05:40 PM
آخر رد: أبو خالد الشكري
  قراءة ملف txt اون لاين لو تكرمتم crazykinko 3 873 11-07-22, 11:53 AM
آخر رد: crazykinko
Lightbulb *○● قراءة نوع البيانات Data Type من قاعدة البيانات ●○* أبو خالد الشكري 10 1,738 29-06-22, 11:51 PM
آخر رد: أبو خالد الشكري
  [سؤال] طلب مساعدة في كود قراءة النص كلمة كلمة waelalmsry75 3 1,136 07-06-22, 09:00 AM
آخر رد: asmarsou

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


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