تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مساعدة في قراءة ملف xml موجود في موقعي
#1
يسعد الله اوقاتكم

محتاج مساعدة في قراءة ملف xml موجود في موقعي على ان ينزل كل سطر في 
textbox.text

محتوى الملف هذا

كود :
<QRZCQDatabase xmlns="http://qrzcq.com" version="1.04">
<Callsign>
<call>A61BK</call>
<name>ali</name>
<qth>DUBAI</qth>
<continent>AS</continent>
<country>United Arab Emirates</country>
<state>DUBAI</state>
<locator>LL75qg</locator>
<latitude>25.266900</latitude>
<longitude>55.410140</longitude>
<itu>39</itu>
<cq>21</cq>
<qslpic>http://qrzcq.com/qslpic/a61bk.jpg</qslpic>
<prefix>A6</prefix>
</Callsign>
</QRZCQDatabase>


يا ليت احصل كود القراءه لاني جربت اكثر من كود بس ما نفع معاي


وشكرا لكم
الرد }}}
تم الشكر بواسطة:
#2
المعروف ان ملف xml يبدأ بهذا Tag
كود :
<?xml

لهذا لا يتم قراءته


فكيف بدأ ملفك بهذا Tag
كود :
<QRZCQDatabase
الرد }}}
تم الشكر بواسطة: dubai.eig
#3
(19-05-17, 10:01 PM)alma2 كتب : المعروف ان ملف xml يبدأ بهذا Tag
كود :
<?xml

لهذا لا يتم قراءته


فكيف بدأ ملفك بهذا Tag
كود :
<QRZCQDatabase

اهلا اخي

انا اختصرة الكود

هذا الكود الكامل

كود :
<?xml version="1.0" encoding="utf-8" ?>
<QRZCQDatabase version="1.00" xmlns="http://qrzcq.com">
    <Callsign>
        <call>DO5SSB</call>
        <dxcc>230</dxcc>
        <name>Grzegorz Surmann</name>
        <qth>Buchholz, near Hamburg</qth>
        <address>Amselweg 1 a</address>
        <city>Buchholz</city>
        <zip>21244</zip>
        <license>E</license>
        <continent>EU</continent>
        <country>Germany</country>
        <state>NDS</state>
        <locator>JO43WH</locator>
        <latitude>53.3199308</latitude>
        <longitude>9.8597973</longitude>
        <website>http://do5ssb.blogspot.de/</website>
        <itu>28</itu>
        <cq>14</cq>
        <eqsl>1</eqsl>
        <lotw>0</lotw>
        <bqsl>0</bqsl>
        <mqsl>1</mqsl>
        <utf8>0</utf8>
        <qslpic>http://qrzcq.com/qslpic/do5ssb.jpg</qslpic>
        <prefix>DL</prefix>
    </Callsign>
    <Session>
        <Key>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Key>
        <Count>18232</Count>
        <SubExp>Sat Mar 1 20:13:59 2014</SubExp>
        <GMTime>Wed Feb 26 20:22:21 2014</GMTime>
        <Remark>cpu: 0.006s</Remark>
    </Session>
</QRZCQDatabase>



انا اللي يهمني اقراء هو

كود :
<call>A61BK</call>
<name>ali</name>
<qth>DUBAI</qth>
<continent>AS</continent>
<country>United Arab Emirates</country>
<state>DUBAI</state>
<locator>LL75qg</locator>
<latitude>25.266900</latitude>
<longitude>55.410140</longitude>
<itu>39</itu>
<cq>21</cq>
<qslpic>http://qrzcq.com/qslpic/a61bk.jpg</qslpic>
<prefix>A6</prefix>


علما اخي الكود اللي جربته يعمل بس يقراء اول اربع اسطر والباقي ما يقراهم ما اعرف ليش

كود :
   Dim url As String = String.Format("https://www.hamqth.com/xml.php?id={0}&callsign={1} &prg=BKLOG", Label17.Text, calls.Text)

       Dim document As New XmlTextReader(url)

       'loop through the xml file
       While (document.Read())
   

           Dim type = document.NodeType

           'if node type was element
           If (type = XmlNodeType.Element) Then

               'if the loop found a <FirstName> tag
               If (document.Name = "adr_name") Then

                   Lfullname.Text = document.ReadInnerXml

               End If
               If (document.Name = "us_state") Then

                   state.Text = document.ReadInnerXml

               End If
               'if the loop found a <FirstName> tag
               If (document.Name = "qth") Then

                   qth.Text = document.ReadInnerXml

               End If


               'if the loop found a <FirstName> tag
               If (document.Name = "grid") Then

                   WORKinfo.GRIDSQUARE.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "qsl_via") Then

                   WORKinfo.Lqslmgr.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "latitude") Then

                   WORKinfo.LAT.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "longitude") Then

                   WORKinfo.LON.Text = document.ReadInnerXml

               End If

           End If

       End While

   End Sub


بحثت عن كود اخر بس ما حصلت شي يفيدني بارك الله فيك
الرد }}}
تم الشكر بواسطة:
#4
تستطيع استغلال DataSet وعرضها في DataGridView مع تحديد اسم الجدول وهو هنا Callsign حسب طلبك
كود :
Dim ds As New DataSet
        ds.ReadXml(url)
        Me.DataGridView1.DataSource = ds.Tables("Callsign")
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig
#5
(19-05-17, 11:29 PM)alma2 كتب : ضع الكود كامل الذي أنشأت به ملف xml

الملف منشة من قبل موقع اخر 

ما عندي فكرة عنه

بس انا الكود اللي عندي شغال بس ما يسحب جميع الاسطر المطلوبه

كود :
   Dim url As String = String.Format("https://www.hamqth.com/xml.php?id={0}&callsign={1} &prg=BKLOG", Label17.Text, calls.Text)

       Dim document As New XmlTextReader(url)

       'loop through the xml file
       While (document.Read())
   

           Dim type = document.NodeType

           'if node type was element
           If (type = XmlNodeType.Element) Then

               'if the loop found a <FirstName> tag
               If (document.Name = "adr_name") Then

                   Lfullname.Text = document.ReadInnerXml

               End If
               If (document.Name = "us_state") Then

                   state.Text = document.ReadInnerXml

               End If
               'if the loop found a <FirstName> tag
               If (document.Name = "qth") Then

                   qth.Text = document.ReadInnerXml

               End If


               'if the loop found a <FirstName> tag
               If (document.Name = "grid") Then

                   WORKinfo.GRIDSQUARE.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "qsl_via") Then

                   WORKinfo.Lqslmgr.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "latitude") Then

                   WORKinfo.LAT.Text = document.ReadInnerXml

               End If

               'if the loop found a <FirstName> tag
               If (document.Name = "longitude") Then

                   WORKinfo.LON.Text = document.ReadInnerXml

               End If

           End If

       End While

   End Sub


يسحب اول ثلاث اسطر

كود :
             'if the loop found a <FirstName> tag
               If (document.Name = "adr_name") Then

                   Lfullname.Text = document.ReadInnerXml

               End If
               If (document.Name = "us_state") Then

                   state.Text = document.ReadInnerXml

               End If
               'if the loop found a <FirstName> tag
               If (document.Name = "qth") Then

                   qth.Text = document.ReadInnerXml

               End If


وهذا الملف
   

(19-05-17, 11:39 PM)alma2 كتب : تستطيع استغلال DataSet وعرضها في DataGridView مع تحديد اسم الجدول وهو هنا Callsign حسب طلبك
كود :
       Dim ds As New DataSet
       ds.ReadXml(url)
       Me.DataGridView1.DataSource = ds.Tables("Callsign")


تسلم استاذي  بس
انا محتاج اعرض النتائج في 
textbox
الرد }}}
تم الشكر بواسطة:
#6
(20-05-17, 12:08 AM)alma2 كتب :
كود :
       Dim url As String = String.Format("https://www.hamqth.com/xml.php?id={0}&callsign={1} &prg=BKLOG", Label17.Text, calls.Text)

       Dim ds As New DataSet
       ds.ReadXml(url)

       If ds.Tables("Callsign").Rows.Count > 0 Then
           Dim r As DataRow = ds.Tables("Callsign")(0)

           Lfullname.Text = r("adr_name")
           state.Text = r("us_state")
           qth.Text = r("qth")
           WORKinfo.GRIDSQUARE.Text = r("grid")
           WORKinfo.Lqslmgr.Text = r("qsl_via")
           WORKinfo.LAT.Text = r("latitude")
           WORKinfo.LAT.Text = r("longitude")
       End If

راجع الاسماء مثل adr_name وus_state الى آخرها التي في الكود فهي ليست مطابقة لملف xml

فالجدول Callsign
لديه الأعمدة التالية
call
dxcc
name
qth
address
city
zip
license
continent
country
state
locator
latitude
longitude
website
itu
cq
eqsl
lotw
bqsl
mqsl
utf8
qslpic
prefix

جميل جدا تم القراءاه وكل شي تمام


بارك الله فيك

شكرا على مساعدتك وفي ميزان اعمالك

شكرا من جديد Rolleyes
الرد }}}
تم الشكر بواسطة:
#7
كود :
       Dim url As String = String.Format("https://www.hamqth.com/xml.php?id={0}&callsign={1} &prg=BKLOG", Label17.Text, calls.Text)

       Dim ds As New DataSet
       ds.ReadXml(url)

       If ds.Tables("Callsign") Is Nothing AndAlso ds.Tables("Callsign").Rows.Count > 0 Then
           Dim r As DataRow = ds.Tables("Callsign")(0)

           Lfullname.Text = r("adr_name")
           state.Text = r("us_state")
           qth.Text = r("qth")
           WORKinfo.GRIDSQUARE.Text = r("grid")
           WORKinfo.Lqslmgr.Text = r("qsl_via")
           WORKinfo.LAT.Text = r("latitude")
           WORKinfo.LON.Text = r("longitude")
       End If

راجع الاسماء adr_name وus_state وgrid وqsl_via فهي ليست موجودة في ملف xml

فالجدول Callsign
لديه الأعمدة التالية
call
dxcc
name
qth
address
city
zip
license
continent
country
state
locator
latitude
longitude
website
itu
cq
eqsl
lotw
bqsl
mqsl
utf8
qslpic
prefix
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig



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


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