0
Android 용 응용 프로그램을 만들고 있는데이 페이지의 XML 파일을 표시해야합니다 : http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=7009 페이지에서 주어진 해결책을 시도했지만 실행시 표시되지 않으므로 잘못되었습니다. 응용 프로그램. 난 그냥XML 온라인 파일 구문 분석 Android
이는 XML 코드
이다 "억센 = 달러 호주 달러 SPOT INTERCAMBIO을"보여주고 싶은이 내 코드입니다 :
xmlpruebaprueba.jar
XMLdataCollected sitesList= null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xmlpruebaprueba);
//creando un Layout
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(1);
//creando TextView
TextView Registro[];
TextView Tipo[];
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
URL sourceURL = new URL("http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=7009");
handlingXml HandlingXml = new handlingXml();
xr.setContentHandler(HandlingXml);
xr.parse(new InputSource(sourceURL.openStream()));
}catch (Exception e){
System.out.println("XML Parsing Exception= " + e);
}
sitesList = handlingXml.sitesList;
Registro = new TextView[sitesList.getRegistro().size()];
Tipo = new TextView[sitesList.getTipo().size()];
for (int i = 0; i < sitesList.getRegistro().size(); i++) {
Registro[i] = new TextView(this);
Registro[i].setText("Registro = "+sitesList.getRegistro().get(i));
Tipo[i] = new TextView(this);
Tipo[i].setText("Tipo = "+sitesList.getTipo().get(i));
layout.addView(Registro[i]);
layout.addView(Tipo[i]);
}
}
}
,210
는이 내 핸들러
Boolean currentElement = false;
String currentValue = null;
public static XMLdataCollected sitesList = null;
public static XMLdataCollected getDataCollected(){
return sitesList;
}
public static void setSitesList(XMLdataCollected sitesList){
handlingXml.sitesList = sitesList;
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
currentElement = true;
if(localName.equals("Root"))
{
sitesList = new XMLdataCollected();
}else if (localName.equals("Registro")){
String attr = attributes.getValue("tipo");
sitesList.setTipo(attr);
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
currentElement = false;
if (localName.equalsIgnoreCase("Registro"))
sitesList.setRegistro(currentValue);
else if (localName.equalsIgnoreCase("Root"))
sitesList.setRoot(currentValue);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
if (currentElement) {
currentValue = new String(ch, start, length);
currentElement = false;
}
}
}
이며,이
공용 클래스 XMLdataCollected {
private ArrayList<String> root = new ArrayList<String>();
private ArrayList<String> registro = new ArrayList<String>();
private ArrayList<String> tipo = new ArrayList<String>();
public ArrayList<String> getRoot(){
return root;
}
public void setRoot(String root){
this.root.add(root);
}
public ArrayList<String> getRegistro(){
return registro;
}
public void setRegistro(String registro){
this.registro.add(registro);
}
public ArrayList<String> getTipo(){
return tipo;
}
public void setTipo(String tipo){
this.tipo.add(tipo);
}
}
응용 프로그램이 손상 되나요? 또는 아무것도 표시하지 않습니까? –
은 오류 메시지를 표시하고 응용 프로그램을 닫습니다. –
그러면 충돌 로그입니다. 'LogCat'에서. 그것을 게시 .. 문제는 .. 당신은 메인 UI 스레드에서'네트워크 요청'을 실행하고 있습니다. AsyncTask를 사용하여 웹 요청을 호출하십시오. http://developer.android.com/reference/android/os/AsyncTask.html –