Java 如何在Android中进行XML解析? 我正在安卓系统中实现雅虎集成,以检索所有 我的应用程序中的联系人。我得到了xml格式的url,但我不知道如何获得 在Android中进行xml解析。谁能帮我一下吗?这是我的名片 代码 private static final String KEY\u CONTACT=“contacts”; 私有静态最终字符串键\u FIELDS=“FIELDS”; 私有静态最终字符串键\u TYPE=“TYPE”; 私有静态最终字符串KEY_VALUE=“VALUE”; 私有void getAllContacts(){ 字符串主机url=”http://social.yahooapis.com/v1/user/“+mUSER_GUID+”/contacts”; 字符串nonce=”“+System.currentTimeMillis(); 字符串timeStamp=“”+(System.currentTimeMillis()/1000L); 试一试{ 字符串参数= “+encode”(“oauth\u消费者密钥”)+“=”+encode(消费者密钥) +“&”+编码(“oauth_nonce”)+“=”+编码(nonce) +“&”+encode(“oauth_签名_方法”)+“=”+encode(“HMAC-SHA1”) +“&”+编码(“oauth_时间戳”)+“=”+编码(时间戳) +“&”+编码(“oauth_令牌”)+“=”+访问_令牌 +“&”+编码(“oauth_版本”)+“=”+编码(“1.0”); 字符串baseString=encode(“GET”)+“&”+encode(主机url)+“&”+encode(参数); 字符串签名密钥=编码(消费者密钥)+“&”+编码(访问令牌密钥); 字符串lSignature=computeHmac(基本字符串,签名键); lSignature=编码(lSignature); 字符串lRequestUrl=主机url +“?oauth_consumer_key=“+consumer_key +“&oauth_nonce=“+nonce +“&oauth\u签名\u方法=HMAC-SHA1” +“&oauth_timestamp=“+timestamp +“&oauth_token=“+ACCESS_token” +“&oauth_version=1.0” +“&oauth_签名=”+L签名 ; HttpGet HttpGet=新的HttpGet(lRequestUrl); HttpClient HttpClient=新的DefaultHttpClient(); ResponseHandler ResponseHandler=新BasicResponseHandler(); 字符串responseBody=httpclient.execute(httpget,responseHandler); SAXParserFactory spf=SAXParserFactory.newInstance(); SAXParser sp=spf.newSAXParser(); //获取我们创建的SAXParser的XMLReader。 XMLReader xr=sp.getXMLReader(); InputSource InputSource=新的InputSource(); inputSource.setEncoding(“UTF-8”); setCharacterStream(新的StringReader(responseBody)); xr.parse(inputSource); Log.e(“XML”、“READER”); 捕获(例外e) { e、 printStackTrace(); Log.e(标记“获取用户联系人时出错”); } } 多亏了你。

Java 如何在Android中进行XML解析? 我正在安卓系统中实现雅虎集成,以检索所有 我的应用程序中的联系人。我得到了xml格式的url,但我不知道如何获得 在Android中进行xml解析。谁能帮我一下吗?这是我的名片 代码 private static final String KEY\u CONTACT=“contacts”; 私有静态最终字符串键\u FIELDS=“FIELDS”; 私有静态最终字符串键\u TYPE=“TYPE”; 私有静态最终字符串KEY_VALUE=“VALUE”; 私有void getAllContacts(){ 字符串主机url=”http://social.yahooapis.com/v1/user/“+mUSER_GUID+”/contacts”; 字符串nonce=”“+System.currentTimeMillis(); 字符串timeStamp=“”+(System.currentTimeMillis()/1000L); 试一试{ 字符串参数= “+encode”(“oauth\u消费者密钥”)+“=”+encode(消费者密钥) +“&”+编码(“oauth_nonce”)+“=”+编码(nonce) +“&”+encode(“oauth_签名_方法”)+“=”+encode(“HMAC-SHA1”) +“&”+编码(“oauth_时间戳”)+“=”+编码(时间戳) +“&”+编码(“oauth_令牌”)+“=”+访问_令牌 +“&”+编码(“oauth_版本”)+“=”+编码(“1.0”); 字符串baseString=encode(“GET”)+“&”+encode(主机url)+“&”+encode(参数); 字符串签名密钥=编码(消费者密钥)+“&”+编码(访问令牌密钥); 字符串lSignature=computeHmac(基本字符串,签名键); lSignature=编码(lSignature); 字符串lRequestUrl=主机url +“?oauth_consumer_key=“+consumer_key +“&oauth_nonce=“+nonce +“&oauth\u签名\u方法=HMAC-SHA1” +“&oauth_timestamp=“+timestamp +“&oauth_token=“+ACCESS_token” +“&oauth_version=1.0” +“&oauth_签名=”+L签名 ; HttpGet HttpGet=新的HttpGet(lRequestUrl); HttpClient HttpClient=新的DefaultHttpClient(); ResponseHandler ResponseHandler=新BasicResponseHandler(); 字符串responseBody=httpclient.execute(httpget,responseHandler); SAXParserFactory spf=SAXParserFactory.newInstance(); SAXParser sp=spf.newSAXParser(); //获取我们创建的SAXParser的XMLReader。 XMLReader xr=sp.getXMLReader(); InputSource InputSource=新的InputSource(); inputSource.setEncoding(“UTF-8”); setCharacterStream(新的StringReader(responseBody)); xr.parse(inputSource); Log.e(“XML”、“READER”); 捕获(例外e) { e、 printStackTrace(); Log.e(标记“获取用户联系人时出错”); } } 多亏了你。,java,android,yahoo-api,Java,Android,Yahoo Api,Android本身推荐,这是在Android上解析XML的一种高效且可维护的方法。如果使用SAX,则必须创建DefaultHandler并重写其解析XML文件的方法 下面是一个示例您应该粘贴您得到的XML响应。 private static final String KEY_CONTACT="contacts"; private static final String KEY_FIELDS="fields"; private static final String KEY

Android本身推荐,这是在Android上解析XML的一种高效且可维护的方法。

如果使用SAX,则必须创建DefaultHandler并重写其解析XML文件的方法


下面是一个示例

您应该粘贴您得到的XML响应。
    private static final String KEY_CONTACT="contacts";
    private static final String KEY_FIELDS="fields";
    private static final String KEY_TYPE="type";
    private static final String KEY_VALUE="value";

 private void getAllContacts() {

            String host_url = "http://social.yahooapis.com/v1/user/" + mUSER_GUID+ "/contacts";
            String nonce = ""+System.currentTimeMillis();
            String timeStamp = ""+(System.currentTimeMillis()/1000L);

            try{
                String params = 
                        ""+encode("oauth_consumer_key")+"=" + encode(CONSUMER_KEY)
                        + "&"+encode("oauth_nonce")+"="+encode(nonce)
                        + "&"+encode("oauth_signature_method")+"="+encode("HMAC-SHA1")
                        + "&"+encode("oauth_timestamp")+"="+encode(timeStamp)
                        + "&"+encode("oauth_token")+"="+ACCESS_TOKEN
                        + "&"+encode("oauth_version")+"="+encode("1.0");


                String baseString = encode("GET")+"&"+encode(host_url)+"&"+encode(params);
               String signingKey = encode(CONSUMER_SECRET)+"&"+encode(ACCESS_TOKEN_SECRET);
              String lSignature = computeHmac(baseString, signingKey);
             lSignature = encode(lSignature);

                      String lRequestUrl = host_url
                                    + "?oauth_consumer_key="+CONSUMER_KEY
                                    + "&oauth_nonce="+nonce
                                    + "&oauth_signature_method=HMAC-SHA1"
                                    + "&oauth_timestamp="+timeStamp
                                    + "&oauth_token="+ACCESS_TOKEN
                                    + "&oauth_version=1.0"
                                    + "&oauth_signature="+lSignature
                                    ;

                HttpGet httpget = new HttpGet(lRequestUrl);
                HttpClient httpclient = new DefaultHttpClient();

               ResponseHandler<String> responseHandler = new BasicResponseHandler();


                String responseBody = httpclient.execute(httpget, responseHandler);

                SAXParserFactory spf=SAXParserFactory.newInstance();
                SAXParser sp=spf.newSAXParser();

                // Get the XMLReader of the SAXParser we created. 
                XMLReader xr=sp.getXMLReader();

                InputSource inputSource = new InputSource();
                inputSource.setEncoding("UTF-8");
                inputSource.setCharacterStream(new StringReader(responseBody));

                 xr.parse(inputSource);
                   Log.e("XML","READER");
     catch(Exception e)
            {
                e.printStackTrace();
                Log.e(TAG, "error while fetching user contacts");
            }

        }


 Thanks to you .