0
我有一個XML文件解析這些xml文件值...我如何能在Android的
<?xml version="1.0" ?>
-<dict>
<ID>USDUSD</ID>
<VALUE>0.00</VALUE>
<ID>USDGBP</ID>
<VALUE>0.6465</VALUE>
<ID>USDEUR</ID>
:
:
</dict>
的我試着用SAX解析器與下面的代碼
private boolean getUpdatedCurrencyValue(Context context) {
try {
/** Handling XML */
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Send URL to parse XML Tags */
URL sourceUrl = new URL("http:..../currencyconv.php");
/** Create handler to handle XML Tags (extends DefaultHandler) */
XMLHandler myXMLHandler = new XMLHandler();
xr.setContentHandler(myXMLHandler);
InputSource is=new InputSource(sourceUrl.openStream());
Log.d("DEBUG",""+is);
xr.parse(is);
if(myMap!=null){
myMap.clear();
}
for (int i = 0; i < XMLHandler.countriesNames.size(); i++) {
myMap.put(XMLHandler.countriesNames.get(i), XMLHandler.currencyValues.get(i));
log(XMLHandler.countriesNames.get(i)+" "+ XMLHandler.currencyValues.get(i));
}
} catch (Exception e) {
e.printStackTrace();
isError=true;
}
}
public class XMLHandler extends DefaultHandler{
int counter=0;
protected static ArrayList<String> backupCurrencyValues = new ArrayList<String>();
//protected static String[] currencyValues=new String[290];
protected static ArrayList<String> currencyValues = new ArrayList<String>();
protected static ArrayList<String> countriesNames = new ArrayList<String>();
// private String[] countriesNames=new String[290];
public XMLHandler() {
counter=0;
}
@Override
public void characters(char ch[], int start, int length) {
String temp=new String(ch,start,length); // this function retrieves values a from a tag each time
Log.d("CURRENCY","Original "+temp);
}
}
這函數每次從標籤檢索值a
但希望基於標籤的值..任何幫助嗎?
你應該表明你正在嘗試的完整代碼。 –
然後你應該選擇Pull-Parser – ingsaurabh
這是使用SAX解析非常簡單的XML。 http://www.google.co.in/#hl=zh-CN&cp=19&gs_id=2k&xhr=t&q=android+SAX+parser+example –