تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: Navigate Xml File By XPath Navigator
#1
كاتب الموضوع : BADRMEDIA



أحياناً ممكن نحفظ جداول بيانات فى صورة Xml لكن كيف نتصفح هذه البيانات بطريقة من الطرق

سنتعرف على العنصر XPath

لنقوم بذلك

أريدك أن تنشأ ملف Xml على القرص المحلي C مباشرة باسم BADRMEDIA.Xml

وتجعل محتواه هذا الكود



كود :
[color=#000080]<?xml version=[COLOR=#0000ff]"1.0"[/color] encoding=[color=#0000ff]"utf-8"[/color]?>[/COLOR]
[color=#000080]<address_list>[/color]
[color=#000080]<personal_data id=[COLOR=#0000ff]"ID12345"[/color]>[/COLOR]
[color=#000080]<zip>[/color]123-4567[color=#000080]</zip>[/color]
[color=#000080]<address>[/color]VB4ARAB[color=#000080]</address>[/color]
[color=#000080]<name>[/color]nono[color=#000080]</name>[/color]
[color=#000080]<age>[/color]34[color=#000080]</age>[/color]
[color=#000080]</personal_data>[/color]
[color=#000080]<personal_data id=[COLOR=#0000ff]"ID00234"[/color]>[/COLOR]
[color=#000080]<zip>[/color]765-4321[color=#000080]</zip>[/color]
[color=#000080]<address>[/color]BADRMEDIA[color=#000080]</address>[/color]
[color=#000080]<name>[/color]OzOz[color=#000080]</name>[/color]
[color=#000080]<age>[/color]28[color=#000080]</age>[/color]
[color=#000080]</personal_data>[/color]
[color=#000080]<personal_data id=[COLOR=#0000ff]"ID32401"[/color]>[/COLOR]
[color=#000080]<zip>[/color]000-1111[color=#000080]</zip>[/color]
[color=#000080]<address>[/color]AHMED[color=#000080]</address>[/color]
[color=#000080]<name>[/color]ANDY[color=#000080]</name>[/color]
[color=#000080]<age>[/color]40[color=#000080]</age>[/color]
[color=#000080]</personal_data>[/color]
[color=#000080]</address_list>[/color]



كيف نقوم بربط التصفح بهذا الملف

نضع زر امر Button ونضع هذا الكود تحت الحدث له



كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim xmlDoc As New System.Xml.XPath.XPathDocument("C:\BADRMEDIA.xml")

Dim xNavi As System.Xml.XPath.XPathNavigator = _
xmlDoc.CreateNavigator()

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub

استخدمنا العنصر XPathDocument من داخل العنصر XPath لربطه بملف Xml

ثم استخدمنا العنصر XPathNavigator ليقوم بالتصفح من داخل العنصر XPath

}}}
تم الشكر بواسطة:
#2
الآن هنبدأ نتصفح عنصر معين ولنري هذا الكود



كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim xmlDoc As New System.Xml.XPath.XPathDocument("C:\BADRMEDIA.xml")

Dim xNavi As System.Xml.XPath.XPathNavigator = _
xmlDoc.CreateNavigator()


' الجزء الجديد

Dim ite As System.Xml.XPath.XPathNodeIterator = _
xNavi.Evaluate("//personal_data/name")

While (ite.MoveNext())
MsgBox(ite.Current.ToString())
End While

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub

استخدمنا العنصر XPathNodeIterator لنربطه بعنصر من ملف التصفح

//personal_data/name

ونبدأ فى عرض بيانات العنصر - صف صف




}}}
تم الشكر بواسطة:
#3
فى المثال السابق تصفحنا عنصر محدد

لكن ماذا لو أردنا عرض جزء Xml بدلالة عنصر محدد

ممكن ذلك لنري هذا الكود


كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim xmlDoc As New System.Xml.XPath.XPathDocument("C:\BADRMEDIA.xml")

Dim xNavi As System.Xml.XPath.XPathNavigator = _
xmlDoc.CreateNavigator()

Dim ite As System.Xml.XPath.XPathNodeIterator = _
xNavi.Evaluate("//personal_data[@id='ID00234']")


While (ite.MoveNext())
MsgBox(ite.Current.InnerXml())
End While

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub

فى عرض التصفح حددنا التصفح بدلالة معينة وهى //personal_data[@id='ID00234']

ولعرض جزء Xml نستخدم الدالة InnerXml


كود :
MsgBox(ite.Current.InnerXml())
}}}
تم الشكر بواسطة:
#4
ممكن تجعل التصفح يعود لك بعدد السجلات التى وجدت بالشرط السايق

//personal_data[@id='ID00234']


نستخدم الدالة Count للعنصر


كود :
MsgBox(ite.Count())





}}}
تم الشكر بواسطة:
#5
ماذا لو أردت مجموع حقل معين

لنري هذا الكود



كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim xmlDoc As New System.Xml.XPath.XPathDocument("C:\BADRMEDIA.xml")

Dim xNavi As System.Xml.XPath.XPathNavigator = _
xmlDoc.CreateNavigator()

Dim intSum = xNavi.Evaluate("sum(//personal_data/age/text())")
MsgBox("مجموع الأعمار" & intSum)

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub


جعلنا التصفح بمجموع حقل العمر Age ثم عرضنا النتيجة فى رسالة

}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Exclamation [VB.NET] استيراد ملف اكسل الى vb.net Import Excel File Table –datagridview Sheet samo2000 1 2,879 20-02-22, 05:49 PM
آخر رد: رضوان الجماعي
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 4 6,080 18-07-21, 02:53 AM
آخر رد: kebboud
  File Signature silverlight 5 4,317 29-05-19, 10:38 PM
آخر رد: egbest2
  معلومة ::: ListBox Blue Sky 14 22,003 14-11-16, 11:32 PM
آخر رد: فارس جراح
  [مقال] Check the file format of an Image silverlight 3 3,366 28-05-14, 05:02 PM
آخر رد: Sajad
  save rtf file in database محمد عمر مصطفى 0 2,416 21-12-13, 02:50 AM
آخر رد: محمد عمر مصطفى
  معلومة مهمه فى المصفوفات ali.alfoly 2 3,727 30-08-13, 02:25 AM
آخر رد: ali.alfoly
  من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) المبرمج علي نوري 2 3,820 23-08-13, 11:17 PM
آخر رد: nin9e
  من المنتدى القديم - معلومة ::: CheckBox ( للاخ BADRMEDIA ) المبرمج علي نوري 1 2,914 30-11-12, 05:54 PM
آخر رد: مبرمج أوتار
  معلومة :: الحل لمشكلة الخطأ في الكود For Each i As Button In Me.Controls Aly El-Haddad 2 3,562 10-11-12, 09:15 PM
آخر رد: Mr. DotNet

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


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