Xml解析android代码
我正在为Android做一个应用程序,我需要显示一个XML文件this page:在应用程序显示Compra="481.3" Venta="485"
但我不能"DOLAR SPOT INTERBANCARIO" and Var_por="-0,53" Var_pes="-2,60" hora="10:35"
。请帮助我的代码。Xml解析android代码
XML图像
这是ExampleHandler代码
public class ExampleHandler extends DefaultHandler {
private boolean in_Root = false;
private boolean in_Registro = false;
private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet();
public ParsedExampleDataSet getParsedData() {
return this.myParsedExampleDataSet;
}
@Override
public void startDocument() throws SAXException {
this.myParsedExampleDataSet = new ParsedExampleDataSet();
}
@Override
public void endDocument() throws SAXException {
}
@Override
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException {
if (localName.equals("Root")) {
this.in_Root = true;
}else if (localName.equals("Registro")) {
this.in_Registro = true;
// Extract an Attribute
String attrValue = atts.getValue("Compra");
Float compra = Float.parseFloat(attrValue);
myParsedExampleDataSet.setExtractedCompra(compra);
String attrValue2 = atts.getValue("Venta");
Float venta = Float.parseFloat(attrValue2);
myParsedExampleDataSet.setExtractedVenta(venta);
**String attrValue3 = atts.getValue("Var_por");
Float por = Float.parseFloat(attrValue3);
myParsedExampleDataSet.setExtractedPor(por);**
//its my wrong code for Var_por
}
}
@Override
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
if (localName.equals("Root")) {
this.in_Root = false;
}else if (localName.equals("Registro")) {
}
}
/** Gets be called on the following structure:
* <tag>characters</tag> */
@Override
public void characters(char ch[], int start, int length) {
if(this.in_Registro){
//myParsedExampleDataSet.setExtractedStruct(new String(ch, start, length));
}
}
}
你可能会检查出的SimpleXML的小东西那样。它在Android上运行良好。
谢谢,我正在检查代码 – 2012-07-27 15:06:15
我的代码有效,只是不知道如何显示xml – 2012-07-27 15:07:37
我实现了一个解决这个问题最近使用Jsoup。 下面概述的解决方案将从提供的URL中获取数据并将其解析为一个字符串数组。
设置
.jar文件可以发现here。
有关如何将它包含在Android应用程序中的说明是here。
实施
采用进口:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
功能代码:
public static ArrayList<String> parseDocument()
{
ArrayList<String> values = new ArrayList<String>();
Document doc;
try {
doc = Jsoup.connect("http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=7009").get(); // Timeout is in milliseconds
Elements nodes = doc.select("Registro");
values.add(nodes.attr("tipo"));
values.add(nodes.attr("Compra"));
values.add(nodes.attr("Venta"));
values.add(nodes.attr("Var_por"));
// etc
} catch (IOException e) {
e.printStackTrace();
}
return values;
}
所有你需要一次返回函数读取ArrayList中的值做。
的其他参数我会看看它是否有效,谢谢! – 2012-07-27 15:20:36
我有一个quesstion,公共静态ArrayList
它本身并不是一个班级。但是,如果你想要,你可以将它包装在一个类中(例如一个实用程序类或类似的)。 如果它让你感到困惑,你可以删除函数声明的“public static”部分。 – 2012-07-27 16:37:37
请参阅[this](http://www.ibm.com/developerworks/opensource/library/x-android/) – 2012-07-27 14:58:35