先看代码:
xmlMain.java
package com.android.xml;import java.io.StringReader;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;import com.android.tool.MyContentHandler;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class xmlMain extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button read_btn =(Button)findViewById(R.id.read);
read_btn.setOnClickListener(new read_btn_lin());
}
private class read_btn_lin implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub StringReader sr=new StringReader("./assets/Workers.xml");
InputSource is=new InputSource(sr);
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
XMLReader reader=factory.newSAXParser().getXMLReader();
reader.setContentHandler(new MyContentHandler());
reader.parse(is);
}catch(Exception e){
e.printStackTrace();
}
}
}
}MyContentHandler.javapackage com.android.tool;import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;public class MyContentHandler extends DefaultHandler { private String id, name, sex, tag; @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
} @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
System.out.println("---End---");
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
} @Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
//super.startDocument();
System.out.println("---Begin---");
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
tag = localName;
if (localName.equals("worker")) {
for (int i = 0; i < attributes.getLength(); i++) {
System.out.println(attributes.getLocalName(i)
+ attributes.getValue(i));
}
}
}}
错误(但LOG里输出的是W,,是警告信息:
08-31 17:55:03.594: WARN/System.err(345): org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 1: not well-formed (invalid token)
System.out输出也有有startDocument()这里的"---begin---"就没了。是什么原因
xmlMain.java
package com.android.xml;import java.io.StringReader;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;import com.android.tool.MyContentHandler;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class xmlMain extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button read_btn =(Button)findViewById(R.id.read);
read_btn.setOnClickListener(new read_btn_lin());
}
private class read_btn_lin implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub StringReader sr=new StringReader("./assets/Workers.xml");
InputSource is=new InputSource(sr);
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
XMLReader reader=factory.newSAXParser().getXMLReader();
reader.setContentHandler(new MyContentHandler());
reader.parse(is);
}catch(Exception e){
e.printStackTrace();
}
}
}
}MyContentHandler.javapackage com.android.tool;import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;public class MyContentHandler extends DefaultHandler { private String id, name, sex, tag; @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
} @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
System.out.println("---End---");
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
} @Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
//super.startDocument();
System.out.println("---Begin---");
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
tag = localName;
if (localName.equals("worker")) {
for (int i = 0; i < attributes.getLength(); i++) {
System.out.println(attributes.getLocalName(i)
+ attributes.getValue(i));
}
}
}}
错误(但LOG里输出的是W,,是警告信息:
08-31 17:55:03.594: WARN/System.err(345): org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 1: not well-formed (invalid token)
System.out输出也有有startDocument()这里的"---begin---"就没了。是什么原因
pull是android自带的一种xml解析器。pull解析xml示例
http://tdq222.javaeye.com/blog/702114
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="23">
<name>李明</name>
<age>30</age>
</person>
<person id="20">
<name>李向梅</name>
<age>25</age>
</person>
</persons> 也是不行,,只是输出begin那句。
还有这个警告:WARN/System.err(345): org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 1: not well-formed (invalid token)
怎么回事????
还有
new-other-xml-xml.都不行。
还有一个android工程里有一个android XML File .我不太会用,试着建了一个,然后删除原来的,把我的copy上去。。
这三个建的xml。。运行,都是同样错误。
什么 care ?????????
都是java.io.FileNotFoundException但写在java里都正常。
可是放到程序里还是不行啊要怎么建utf8啊。