Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面临从web到android获取xml数据的困难_Android_Xml_Parsing_Xml Parsing - Fatal编程技术网

面临从web到android获取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文件托管在 xml文件如下所示:

<?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"/>