Android SAX 方式解析XML 字符串

Android SAX 方式解析XML 字符串
Android 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.XMLReader;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.widget.TextView;

public class ParsingXML extends Activity {

private final String MY_DEBUG_TAG = "WeatherForcaster";

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

TextView tv = new TextView(this);

String xml = "aHR0cDovLzE5Mi4xNjguMTA0LjExMy9ldW1zL2NsaWV udC90ZW1 wbGF0ZTIwMDA vbW9iaWxlZW50cnkucGhwP3VzZXJuYW1lPWNlc2hp";

// 创建一个新的字符串

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=Base64Coder.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 ;

}

}

相关主题
相关文档
最新文档