الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع ملفات xml

بدأه mkyh86 في 4 مارس 2014 · 7 رد · 817 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو كان عندي بيانات في الداتاسيت وقمت بخزنها على شكل ملف xml كيف استطيع ان استرجع بعض من حقول ذالك الملف ووضعها في الداتاتيبل

مثال

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <t1>
    <idst>1</idst>
    <الاسم>moha</الاسم>
    <sname>qas</sname>
    <tname>yas</tname>
    <date>19/01/1987</date>
    <sex>true</sex>
    <BloodTypeF>o</BloodTypeF>
    <HomeAddrF>hhhhh</HomeAddrF>
  </t1>
  <t1>
    <idst>2</idst>
    <الاسم>ali</الاسم>
    <sname>aa</sname>
    <tname>bbb</tname>
    <date>19/11/1987</date>
    <sex>false</sex>
    <BloodTypeF>A</BloodTypeF>
    <HomeAddrF>dfsasadf</HomeAddrF>
  </t1>
  <t1>
    <idst>3</idst>
    <الاسم>333</الاسم>
    <sname>333</sname>
    <date>30/20/2010</date>
    <sex>true</sex>
    <BloodTypeF>2</BloodTypeF>
    <HomeAddrF>3</HomeAddrF>
  </t1>

</DocumentElement>

اريد ان استرجع القيد الاول فقط الي idst = 1

مع الشكر والتقدير

 

#2

استخدم Linq ToXML  للاستعلام بعد تحميل الملف بواسطة الميثود Load  العائدة لـ XDocument

هذا مثال على نفس ملفك المرفق يتم البحث بناء على الحقل Idst

على افتراض ان ملف xml اسمه data

Imports System.Xml
Imports System.Linq
Imports System.IO
Imports System.Text

Module Module1
    Private Function GetRecordByID(id As String) As IEnumerable(Of XElement)
        Dim xmlDoc As XDocument = Nothing
        Using Reader As StreamReader = New StreamReader("data.xml", Encoding.GetEncoding("ISO-8859-1"))
            xmlDoc = XDocument.Load(Reader)
        End Using
        Dim q = From t In xmlDoc.Descendants("t1")
Where t.<idst>.Value = id
        Select t
        Return q
    End Function
    Sub Main()
        Dim obj = GetRecordByID("1")
        If obj.Nodes.Count = 0 Then
            Console.WriteLine("No Record Found")
        Else
            For Each nd As XElement In obj.Nodes
                Console.WriteLine("{0}: {1}", nd.Name, nd.Value)
            Next
        End If

       
        Console.ReadLine()

    End Sub

End Module

التطبيق كونسول.... يمكنك انشاء datatable  واضافة الاعمدة اليه ومن ثم اضافة البيانات

تم تعديل هذه المشاركة بواسطة SOLO.NET في 5 مارس 2014 في 04:35

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

اشكرك على الرد الجميل جزاك الله خير

ولكن هل استطيع ان احمل الملف الى datatable ومن ثم ابحث داخل datatable باستخدام for  و  if وايهما اسرع ان استخدم البحث داخل ملف xml او ان ابحث داخل datatable وجزاكم الله خيرا

#4

يمكن ذلك عن طؤيق الميثود   ReadXml العائدة لـ DataTable

Dim fileName As String = "C:\TestData.xml"
Dim newTable As New DataTable
  newTable.ReadXml(fileName)

يمكنك استخدام DataView للفلترة

مثلا

 Dim view As DataView = newTable.DefaultView
    
    view.RowFilter = "idst = '1'"
1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#5

اشكرك مرة اخرى يا اخ solo ولكن ايهم اسرع برئيك

#6

اذا كنت ستسخدم for loop  للبحe فالطريقة الاولى اسرع ولن تشعر بالفرق اذا كانت البيانات قليله

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#7

اشكرك مرة اخرى

وهل يمكن ان اربط جدولين مخزونين في ملف xml معاً وكيف استطيع ان اخزن جدولين في ملف xml

 

مع فائق الشكر والتقدير

#8

الشكر لكم

ولكن كيف استطيع ان اجري استعلام بين جدولين في ملف xml

مثال

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table1>
    <ids>1</ids>
    <address>basra</address>
    <old>20</old>
  </Table1>
  <Table2>
    <idN>1</idN>
    <n1>n1</n1>
    <n2>n11</n2>
    <n3>n111</n3>
    <d>2014-02-03T00:00:00+03:00</d>
  </Table2>
  <Table2>
    <idN>3</idN>
    <n1>n3</n1>
    <n2>n33</n2>
    <n3>n333</n3>
    <d>2014-02-24T00:00:00+03:00</d>
  </Table2>
  <Table2>
    <idN>4</idN>
    <n1>n4</n1>
    <n2>n44</n2>
    <n3>n444</n3>
    <d>2014-02-15T00:00:00+03:00</d>
  </Table2>
</NewDataSet>

مواضيع مشابهة