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(标记“获取用户联系人时出错”); } } 多亏了你。
Android本身推荐,这是在Android上解析XML的一种高效且可维护的方法。如果使用SAX,则必须创建DefaultHandler并重写其解析XML文件的方法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
下面是一个示例您应该粘贴您得到的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 .