2014-02-27 52 views
0

我得到一个程序,从一个链接的服务器获取天气。我已经做了一些将字符串结合到URL的字符串。我现在需要从XML文件中获取信息。android:如何从xml文件中获取信息?

这是我的代码:(我更换了,为了安全起见API KEY)

package com.example.thelexapp; 

import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Color; 
import android.view.Menu; 
import android.view.View; 
import android.webkit.WebView; 
import android.widget.TextView; 

public class MainActivity extends Activity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public void getPositionAndGetWheater(View view) { 
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    if (location != null) { 

     TextView text = (TextView) findViewById(R.id.textView1); 
     text.setTextColor(Color.parseColor("#808080")); 
     double longitude = location.getLongitude(); 
     double latitude = location.getLatitude(); 
     String longitudestring = String.valueOf(longitude); 
     String latitudestring = String.valueOf(latitude); 
     String URLforweather = "http://api.worldweatheronline.com/free/v1/weather.ashx?q=" + longitudestring + "," + latitudestring + "&format=xml&num_of_days=1&key=APIKEYIREPLACEDb"; 
     WebView webview = (WebView) findViewById(R.id.webview); 
     webview.loadUrl(URLforweather); 
    } else { 
     final TextView textViewToChange = (TextView) findViewById(R.id.textView1); 
     textViewToChange.setText("Unable to get weather information."); 
     TextView text = (TextView) findViewById(R.id.textView1); 
     text.setTextColor(Color.parseColor("#FF0000")); 
    } 

} 

} 

回答

0

据我所知你的问题是你需要从你有的字符串中创建文档对象。 作为一个可能的解决方案只需在功能下包含此功能并使用它。 这会给你w3cdom对象。 您需要做的其他事情是使用任何xml解析器API并根据您的要求提取您的节点值。

private static Document convertStringToDocument(String xmlStr) { 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder; 
    try 
    { 
     builder = factory.newDocumentBuilder(); 
     Document doc = builder.parse(new InputSource(new StringReader(xmlStr))); 
     return doc;} catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
}