2012-03-13 32 views
1

在我的xml文件的開頭出現一個額外的字符,這反過來導致我的分析方法出錯。我正在使用InputStreamReader從URL讀取文件。我該如何擺脫這個額外的角色?在xml中讀取

?<?xml version="1.0" encoding="utf-8"?> 

我的代碼,如果有興趣

public class Client { 

private static final String TAG = "Client"; 
public Client(){ 

} 

InputStream executePost(String targetURL, String urlParameters){ 

    URL url; 
    HttpURLConnection connection = null;   
    try{ 
     //Create connection 

     url = new URL(targetURL); 
     //Log.i(TAG,"Connecting to : "+targetURL); 
     connection = (HttpURLConnection)url.openConnection(); 

     connection.setRequestMethod("GET"); 
     connection.setRequestProperty("Content-Type", 
        "text/xml; charset=utf-8"); 
     connection.setRequestProperty("Content-Language", "en-US"); 
     connection.setRequestProperty("User-Agent", 
       "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"); 

     connection.setUseCaches(false); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 



     //get response 
     InputStream is = connection.getInputStream(); 
     InputStreamReader reader = new InputStreamReader(is,"UTF-8"); 

     BufferedReader br = new BufferedReader(reader); 
     String line =""; 

     while((line = br.readLine()) != null){ 
      System.out.println(line); 

     } 


     return is; 


    }catch(Exception e){ 
     //Log.i(TAG,"Unable to create connection"); 
     e.printStackTrace(); 
     return null; 
    }finally { 

      if(connection != null) { 
      //Log.i(TAG,"Disconnecting"); 
      connection.disconnect(); 
      } 
    } 


} 

}

+0

你用什麼編碼讀取文件?這是什麼語言,在什麼平臺上? – Oded 2012-03-13 19:44:07

+0

@Oded我正在使用「UTF-8」 – Fabii 2012-03-13 19:54:34

回答

1

這就是所謂的BOM(字節順序標記),你應該使用XML解析器實例來讀取XML文件,可以處理它。

+0

哪些xml解析器能夠處理這個問題? – Fabii 2012-03-13 19:55:08

+1

我用dom4j來達到這個目的。但是有好幾十個好的Java XML庫。 – jabal 2012-03-13 20:43:07