PDA

View Full Version : خواند یک فایل xml از یک سایت



peymannaji
شنبه 18 اسفند 1386, 02:07 صبح
سلام
چند وفقت پیش جناب راد یک سایت معرفی کردن که وضعیت شما رو در یک صفحه xml نشان میداد مانند آی پی , نام کشور و شهر و ... که لینکش این هست :

http://api.hostip.info

حالا میخوام بدونم چگونه میتونم این XML رو بخونم ؟

چرا که من قبلا" از متد readxml مربوط به دیتاست استفاده میکردم و اون هم برای لینکهایی که بصورت زیر بودن مانند :

http://www.nytimes.com/services/xml/rss/nyt/Theater.xml

و روش کار هم به اینصورت بود ( البته این کارو در win app انجام داده بودم )


Dim ds As New DataSet
ds.ReadXml("http://www.nytimes.com/services/xml/rss/nyt/Theater.xml")
DataGridView1.DataSource = ds.Tables(3)

اما این یکی فرق داره و هر کاری کردم نشد از شما عزیزان خواهش میکنم یک راهکاری را به بنده بدن که بتونم این فایل xml را بخونم ...

با تشکر ...

nazaninam
شنبه 18 اسفند 1386, 15:08 عصر
ببینید دوست من این هم دقیقا مثل همونه فقط باید دیتا تیبل مورد نظرتو پیدا کنی
الان مشکلش چیه؟

DotNet_King
شنبه 18 اسفند 1386, 15:59 عصر
یه راه ساده، برای انجام اینکار اینه که نیم اسپیس xml رو به بالای صفحه اضافه کنی و بعد


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

publicpartialclass_Default : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
XmlTextReader xml_text = newXmlTextReader("http://api.hostip.info/?ip=210.120.79.80");
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
Response.Write("city is : "+xml_text.Value.ToString() + " <br>");
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
Response.Write("country is : "+xml_text.Value.ToString() + " 8 <br>");
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
Response.Write("country flag is hg : "+xml_text.Value.ToString() + "<br>");
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
xml_text.Read();
Response.Write("user coordinate is : " + xml_text.Value.ToString() + "<br>");
xml_text.Read();
xml_text.Close();

}
}


با این روش جواب گرفتم،

city is : Seoul
country is : KOREA, REPUBLIC OF 8
country flag is hg : KR
user coordinate is : 126.967,37.55



فقط نمیدونم این روش روش خوبیه یا نه؟

peymannaji
شنبه 18 اسفند 1386, 16:33 عصر
دوستان راهشو پیدا کردم



Dim ds As New DataSet
ds.ReadXml("http://api.hostip.info/?ip=210.120.79.80")
DataGridView1.DataSource = ds.Tables(3)
اما یه چیز برام جای سوال داره و اینکه ما در متد readxml میومدیم آدرس فایل xml رو میدادیم مثلا" : http://www.nytimes.com/services/xml/rss/nyt/Theater.xml
اما در این لینک که به متد readxml پاس کردیم خبری از فایل xml نیست ممکنه دوستان یه توضیحی بدن ؟

DotNet_King
شنبه 18 اسفند 1386, 16:58 عصر
Dim ds As New DataSet
ds.ReadXml("http://www.nytimes.com/services/xml/rss/nyt/Theater.xml")
DataGridView1.DataSource = ds.Tables(3)


Dim ds As New DataSet
ds.ReadXml("http://api.hostip.info/?ip=210.120.79.80")
DataGridView1.DataSource = ds.Tables(3)



این کد با کد سوال اولتون یکیه بجز آدرس وب سرویسی که xml رو میده؟ این چه دیگه مدل سواله؟

peymannaji
شنبه 18 اسفند 1386, 17:20 عصر
خوب یکی اینکه من فکر میکردم همیشه باید آدرس فایل xml رو بصورت مستقیم داد و اینجا ابهامی که برام وجود داشت اینه که بجای آدرس مستقیم از این آدرس استفاده کردیم :
http://api.hostip.info/?ip=210.120.79.80
درو اقع بنده نمیدونستم که آدرس وب سرویس رو هم میشه در این متد بکار برد .

اما سوالی که الان دارم اینه که متد readxml چگونه میتونه از آدرس وب سرویس بالا فایل xml مورد نظر ما رو پیدا کنه .؟

MehranZand
شنبه 18 اسفند 1386, 17:44 عصر
خیلی واضحه، متد ReadXML یک فایل XML می خواد حالا از هر جا! خروجی وب سرویس هم یک فایل XML هست.

DotNet_King
شنبه 18 اسفند 1386, 17:51 عصر
خوب یکی اینکه من فکر میکردم همیشه باید آدرس فایل xml رو بصورت مستقیم داد و اینجا ابهامی که برام وجود داشت اینه که بجای آدرس مستقیم از این آدرس استفاده کردیم :
http://api.hostip.info/?ip=210.120.79.80
درو اقع بنده نمیدونستم که آدرس وب سرویس رو هم میشه در این متد بکار برد .


:لبخند:

quote=peymannaji;479710]
اما سوالی که الان دارم اینه که متد readxml چگونه میتونه از آدرس وب سرویس بالا فایل xml مورد نظر ما رو پیدا کنه .؟[/quote]
راستش من با دیتاست ها میانه ی خوبی ندارم ! به همین دلیل همیشه سعی میکنم از اونها استفاده نکنم:خجالت: ولی اگه از روش خودت به جواب نرسیدی من از راهی که براتون پست کردم و باهاش خیلی خیلی خوب جواب گرفتم استفاده کنید! علاوه بر این من قبلا رو همین سایت با xmldocument خیلی راحت تر و تمیز تر از راه بالا جواب گرفته بودم ولی فایل هاش رو پیدا نکردم تا براتون اینجا بذارم! به نظر من هر چیزی رو بهر کاری ساختن مثلا xmltextreader رو واسه خوندن سریع و راحت xml!!!!:چشمک: