看了mars老师做的视频,其中有个关于xml解析的。
以下是代码
package mars.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyContentHandler extends DefaultHandler {
String hisname, address, money, sex, status;
String tagName;
public void startDocument() throws SAXException {
System.out.println("````````begin````````");
}
public void endDocument() throws SAXException {
System.out.println("````````end````````");
}
public void startElement(String namespaceURI, String localName,
String qName, Attributes attr) throws SAXException {
tagName = localName;
if (localName.equals("worker")) {
//获取标签的全部属性
for (int i = 0; i < attr.getLength(); i++) {
System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i));
}
}
}
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
//在workr标签解析完之后,会打印出所有得到的数据
tagName = "";
if (localName.equals("worker")) {
this.printout();
}
}
public void characters(char[] ch, int start, int length)
throws SAXException {
if (tagName.equals("name"))
hisname = new String(ch, start, length);
else if (tagName.equals("sex"))
sex = new String(ch, start, length);
else if (tagName.equals("status"))
status = new String(ch, start, length);
else if (tagName.equals("address"))
address = new String(ch, start, length);
else if (tagName.equals("money"))
money = new String(ch, start, length);
}
private void printout() {
System.out.print("name: ");
System.out.println(hisname);
System.out.print("sex: ");
System.out.println(sex);
System.out.print("status: ");
System.out.println(status);
System.out.print("address: ");
System.out.println(address);
System.out.print("money: ");
System.out.println(money);
System.out.println();
}
}
还有
package mars.xml;
import java.io.StringReader;
import javax.xml.parsers.SAXParserFactory;
import mars.utils.HttpDownloader;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class XMLActitity extends Activity {
/** Called when the activity is first created. */
private Button parseButton ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
parseButton = (Button)findViewById(R.id.parseButton);
parseButton.setOnClickListener(new ParseButtonListener());
}
class ParseButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
HttpDownloader hd = new HttpDownloader();
String resultStr = hd.download("http://192.168.1.107:8081/voa1500/test.xml");
System.out.println(resultStr);
try{
//创建一个SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
XMLReader reader = factory.newSAXParser().getXMLReader();
//为XMLReader设置内容处理器
reader.setContentHandler(new MyContentHandler());
//开始解析文件
reader.parse(new InputSource(new StringReader(resultStr)));
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
这个代码实现的是xml文件的解析
我想把解析的内容提取出来送到其他的Activity中使用,本以为可以用intent方法,可是用intent方法时总会说结构体没有被定义。网上找了很久,基本都是说Activity之间传值的,像这种如何在自己定义的类中间拿出值来呢?
本人新接触Android,可能有些问题比较的没有深度,望各位大大海涵。
4 个解决方案
#2
要想用Intent传递对象,必须让这个对象实现Parceble接口,然后就可以用intent的putExtra传递了。
#3
已经解决了,谢谢回复。
确实提供了个不错的方法
确实提供了个不错的方法
#4
已经解决了,谢谢回复
结贴发分,嘿嘿。
结贴发分,嘿嘿。
#1
#2
要想用Intent传递对象,必须让这个对象实现Parceble接口,然后就可以用intent的putExtra传递了。
#3
已经解决了,谢谢回复。
确实提供了个不错的方法
确实提供了个不错的方法
#4
已经解决了,谢谢回复
结贴发分,嘿嘿。
结贴发分,嘿嘿。