2013-02-15 3 views
3

이것은 내가 지금까지 가지고있는 것입니다. URL에서 XML을 읽으 려하고 온도, 습도 등을 얻으려고합니다.하지만 다른 것을 시도 할 때마다 오류가납니다. 정보를 검색하여 레이블에 넣고 싶습니다.URL에서 xml 읽기

namespace WindowsFormsApplication1 { 
    public partial class Form1: Form { 
     public Form1() { 
      InitializeComponent(); 
     } 
     private void btnSubmit_Click(object sender, EventArgs e) { 
      String zip = txtZip.Text; 
      XmlDocument weatherURL = new XmlDocument(); 
      weatherURL.Load("http://api.wunderground.com/api/" 
      your_key "/conditions/q/" + zip + ".xml"); 
      foreach(XmlNode nodeselect in weatherURL.SelectNodes("response/current_observation")); 
     } 
    } 
} 
+0

XML이 어떻게 보이는지, 그리고 XML에서 파싱하려는 정확한 정보의 예를 보여줍니다. –

+2

"나에게 오류가 발생합니다"충분한 정보가 없습니다 - http://tinyurl.com/so-list를 참조하십시오. –

+0

0.1 http://www.wunderground.com/weather/api/d/terms .html 중에서 PST 아메리카/로스 엔젤레스 -0800 주로 흐림 72 F (22.2 C) locoss

답변

12

나는 약간의 시행 착오가 있었지만 그것을 얻었다. C#에서는 다음을 사용하고 있는지 확인하십시오. using System.Xml;

다음은 wunderground API를 사용하는 코드입니다. 이 작업을 수행하려면 다른 현명한 키를 등록해야 작동 할 수 있습니다. 어디서 키를 넣는 지이 your_key가 어디에 있는지 말입니다. 이런 식으로 보일 것입니다. 정보를 표시하기 위해 버튼과 세 개의 레이블을 사용했습니다.

namespace wfats2 

{ 

    public partial class Form1 : Form 

{ 

public Form1() 

     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

      XmlDocument doc1 = new XmlDocument(); 
      doc1.Load("http://api.wunderground.com/api/your_key/conditions/q/92135.xml"); 
      XmlElement root = doc1.DocumentElement; 
      XmlNodeList nodes = root.SelectNodes("/response/current_observation"); 

      foreach (XmlNode node in nodes) 
      { 
       string tempf = node["temp_f"].InnerText; 
       string tempc = node["temp_c"].InnerText; 
       string feels = node["feelslike_f"].InnerText; 

       label2.Text = tempf; 
       label4.Text = tempc; 
       label6.Text = feels; 
      } 



     } 
    } 
} 

버튼을 누르면 레이블 지정에 표시된 정보가 표시됩니다. 나는 여전히 실험 중이며, 매번 버튼을 누르는 대신 일종의 새로 고침을 할 수 있습니다.

0

이 먼저 떨어져 그래 당신은 귀하의 질문에 더 많은 정보를 제공 할 필요가 있지만, 손 떨어져 난 당신이 URL의 내부에 "your_key"가 있음을 알 수있다. 이 기능을 사용하려면 API 키로 교체해야 할 수도 있습니다.

+1

키가 있지만 특정 요소를 가져 오는 데 사용할 매개 변수를 알 수 없습니다. (내 키를 모두 사용하기를 원하지 않음) – locoss

+0

foreach (XmlNode nodeselect in weatherURL.SelectNodes ("response/current_observation")); 아무것도하지 않는다. 어떤 오류가 나고 무엇을하려고합니까? 얻는 XML 샘플과 원하는 필드를 제공하십시오. –