منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : قراءة ملف xml
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
اريد قراة ملف 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
يا أسامة،

هذا تعديل شامل
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 
(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 حيث لكل اسم صورة فى ملف

اسف على المشاكل
تعديل صغير هل يمكن الحفظ على هذا الشكل

كود :
<?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
السلام عليكم



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



تحياتي
(29-06-16, 10:59 PM)Sajad كتب : [ -> ]السلام عليكم



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



تحياتي

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

وجعل 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"?>
هل يمكن التعديل علية
يا أسامة،

تعبني النوع 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 
مشاركة لاخواني وبعد اذنهم جميعا :
مارايك اخي صاحب السؤال ان تستخدم اداة HtmlAgilityPack وتتعامل مع الملف كملف نصي؟؟
الصفحات : 1 2 3