用下面的SAX方式,解析一个450M的xml文件时,会报内存溢出?
为什么?Java code:
import java.io.File;
import java.io.FileInputStream;
import java.util.*;
import javax.xml.parsers.*;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
public class SaxXml {
public SaxXml() {
}
public void readXML(String FileName) throws Exception{
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
MySAXHandler handler = new MySAXHandler();
sp.parse(new FileInputStream(new File(FileName)), handler);
}
class MySAXHandler extends DefaultHandler{
java.util.Stack tagStack = new java.util.Stack();
@SuppressWarnings("unchecked")
public void startElement(String namespace,String localName,String qName,Attributes atts){
tagStack.push(qName);
System.out.println("qName:"+qName);
}
public void endElement(String namespace,String localName,String qName){
}
public void characters(char[] chs,int start,int length){
}
}
public static void main(String[] args){
String name = "f:/data/AuditBizDataDataSet2.xml";
SaxXml q = new SaxXml();
try {
q.readXML(name);
} catch (Exception e) {
e.printStackTrace();
}
}
}
那我应该在
我在编写一个wince5.0的程序,想实现把PDA上的一个LIST <STRING>类型的数据序列化为XML,然后在PC上的一个webservice拿到这个XML,转化为Dataset,更新PC上的数据库,我想问怎么把XML传给webservice的呢?
......