解析XML在线文件的Andr​​oid [英] parsing XML online file Android

查看:138
本文介绍了解析XML在线文件的Andr​​oid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为Android应用程序,我需要显示此页面的XML文件:的 http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=7009
我想在页面上给出的解决方案,但我觉得很错误的,因为当你运行应用程序时不显示。我只是想表明TIPO = DOLAR SPOT INTERCAMBIO

I am making an application for Android and I need to display an XML file of this page:http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=7009 I tried the solutions given on the page but I find it wrong since it is not displayed when you run the application. I just want to show "tipo= DOLAR SPOT INTERCAMBIO"

这是XML code

This is the XML CODE

这是我的code:

xmlpruebaprueba.jar

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]);
    } 
} 

}

这就是我的处理程序

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;
        }
}

}


这是我dataCollected


and this is my dataCollected

公共类XMLdataCollected {

public class 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);
}

}

推荐答案

您在呼唤你的的Web请求在主UI线程。

You are calling your Web Request on main UI thread.

请千万不要这么做

使用的AsyncTask 来调用Web您的要求。

use AsyncTask to call web your request.

这篇关于解析XML在线文件的Andr​​oid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆