面临从web到android获取xml数据的困难
我需要一些帮助 我有一个xml文件托管在 xml文件如下所示:面临从web到android获取xml数据的困难,android,xml,parsing,xml-parsing,Android,Xml,Parsing,Xml Parsing,我需要一些帮助 我有一个xml文件托管在 xml文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <game> <stat> <varx>5</varx> <vary>10</vary> </stat> </game> 5. 10 现在我需要varx的值,并在我的android应用程序中改变 这就是我
<?xml version="1.0" encoding="UTF-8"?>
<game>
<stat>
<varx>5</varx>
<vary>10</vary>
</stat>
</game>
5.
10
现在我需要varx的值,并在我的android应用程序中改变
这就是我目前所做的:
public class MultiPlayerGameMenuActivity extends Activity {
String url = "http://t3.netne.net/test.xml";
ProgressDialog pDialog;
String msgx = "x";
String msgy = "y";
public void HostNewGameButtonClicked(View view){
Toast t = new Toast(this);
t.setText(msgx+" "+msgy);
t.setDuration(1000);
t.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_multi_player_game_menu);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
new GetXml(url).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new String[]{null});
else
new GetXml(url).execute(new String[]{null});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.multi_player_game_menu, menu);
return true;
}
public class GetXml extends AsyncTask<String, Void, String>{
String urls;
public GetXml(String urls){
this.urls = urls;
}
@Override
protected void onPreExecute(){
pDialog = ProgressDialog.show(MultiPlayerGameMenuActivity.this, "Fetching Details... ", "Please Wait...", true);
}
@Override
protected String doInBackground(String... params){
URL url;
try{
url = new URL(urls);
DocumentBuilderFactory mDocumentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder mDocumentBuilder = mDocumentBuilderFactory.newDocumentBuilder();
Document mDocument = mDocumentBuilder.parse(new InputSource(url.openStream()));
mDocument.getDocumentElement().normalize();
NodeList mNodeList = mDocument.getElementsByTagName("stat");
for(int i=0;i<mNodeList.getLength();i++){
Node mNode = mNodeList.item(i);
Element mElement = (Element) mNode;
NodeList mStringList = mElement.getElementsByTagName("varx");
Element strElement = (Element) mStringList.item(0);
mStringList = strElement.getChildNodes();
msgx = mStringList.item(0).getNodeValue();
NodeList mStringList2 = mElement.getElementsByTagName("vary");
Element strElement2 = (Element) mStringList2.item(0);
mStringList2 = strElement2.getChildNodes();
msgy = mStringList.item(0).getNodeValue();
}
}catch(MalformedURLException e){
e.printStackTrace();
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result){
if(pDialog.isShowing())
pDialog.dismiss();
}
}
}
public类multiplayergameenuActivity扩展活动{
字符串url=”http://t3.netne.net/test.xml";
ProgressDialog;
字符串msgx=“x”;
字符串msgy=“y”;
public void HostNewGameButtonClicked(视图){
吐司t=新吐司(本);
t、 setText(msgx+”“+msgy);
t、 设定持续时间(1000);
t、 show();
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u multi\u player\u game\u菜单);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.HONEYCOMB)
新的GetXml(url).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,新字符串[]{null});
其他的
新建GetXml(url).execute(新字符串[]{null});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单、多人游戏菜单、菜单);
返回true;
}
公共类GetXml扩展异步任务{
字符串URL;
公共GetXml(字符串URL){
this.url=url;
}
@凌驾
受保护的void onPreExecute(){
pDialog=ProgressDialog.show(multiplayergameenuactivity.this,“正在获取详细信息…”,“请稍候…”,true);
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
网址;
试一试{
url=新url(url);
DocumentBuilderFactory mDocumentBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder mDocumentBuilder=mDocumentBuilderFactory.newDocumentBuilder();
Document mDocument=mDocumentBuilder.parse(新的InputSource(url.openStream());
mDocument.getDocumentElement().normalize();
NodeList mNodeList=mDocument.getElementsByTagName(“stat”);
对于(int i=0;i
您未能在清单中添加internet权限
<uses-permission android:name="android.permission.INTERNET"/>
我的错。错过了。非常感谢您的快速解决方案。现在已经修复。
Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
<uses-permission android:name="android.permission.INTERNET"/>