- nicehost
-
那个你可以使用WebService 回传XML文件.在使用Android 提供的 Sax解释XML数据.就OK了..
Sax解析XML 那个简单 在网上查一下.方法很简单...
如:
import java.io.StringReader;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.Reader;
import ..Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.;
public class ParsingXML extends Activity {
private final String MY_DEBUG_TAG = "WeatherForcaster";
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Text tv = new TextView(this);
String xml = "<VCOM version="1.1"><loginlink>aHR0cDovLzE5Mi4xNjguMTA0LjExMy9ldW1zL2NsaWVudC90ZW1wbGF0ZTIwMDAvbW9iaWxlZW50cnkucGhwP3VzZXJuYW1lPWNlc2hp</loginlink><errmsg></errmsg></VCOM>";
// 创建一个新的字符串
StringReader read = new StringReader(xml);
// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
ExampleHandler myExampleHandler = new ExampleHandler();
xr.setContentHandler(myExampleHandler);
xr.parse(source);
ParsedExampleDataSet parsedExampleDataSet = myExampleHandler
.getParsedData();
String url=BaseCoder.decodeString(parsedExampleDataSet.toString());
tv.setText(url);
} catch (Exception e) {
tv.setText("Error: " + e.getMessage());
Log.e(MY_DEBUG_TAG, "WeatherQueryError", e);
}
this.setContentView(tv);
}
}
下面两个类是以SPX 方式解析XML字符串
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class ExampleHandler extends DefaultHandler{
private boolean in_mytag = false;
private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet();
public ParsedExampleDataSet getParsedData() {
return this.myParsedExampleDataSet;
}
public void startDocument() throws SAXException {
this.myParsedExampleDataSet = new ParsedExampleDataSet();
}
public void endDocument() throws SAXException {
}
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException {
if (localName.equals("loginlink")) {
this.in_mytag = true;
}
}
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
if (localName.equals("loginlink")) {
this.in_mytag = false;
}
}
public void characters(char ch[], int start, int length) {
if(this.in_mytag){
myParsedExampleDataSet.setExtractedString(new String(ch, start, length));
}
}
}
public class ParsedExampleDataSet {
private String extractedString = null;
public String getExtractedString() {
return extractedString;
}
public void setExtractedString(String extractedString) {
this.extractedString = extractedString;
}
public String toString(){
return "ExtractedString = " + this.extractedString ;
}
- 康康map
-
attributes 的属性应该是import org.xml.sax.Attributes;而不是import java.util.jar.Attributes;
- 阿啵呲嘚
-
那里是一个URL 你传入一个数据进去..调用试试!!