SAX解析XML发生问题!急!急!急!
解析日期的字符串小部分发生丢失,导致我导入数据库出错,代码和XML文件样本如下,读出的日期一小部分会变成 "-04-28 10:58:00.0 ",完整的应该是 "2007-04-28 10:58:00.0 ",
public class SAXReader extends DefaultHandler{
dbcon connect = new dbcon();
String columnValue = null;
String tableName = null;
String columnName = null;
String sql = "insert into " ;
public void startDocument() throws SAXException {
}
public void processingInstruction(String taget, String data) throws SAXException {
}
public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException {
if( "TABLE ".equals(qName))
{
for(int i = 0;i <attr.getLength();i++)
{
tableName = attr.getValue(i);
}
sql += tableName + " values( ";
}
else
{
columnName = qName;
}
}
public void characters(char[] ch, int start, int length) throws SAXException {
columnValue=new String(ch,start,length).trim();
if( " ".equals(columnValue))
{
columnValue = " ' ' ";
}
else
{
if(! "null ".equals(columnValue)&&! "NULL ".equals(columnValue)&&columnValue!=null&&! " ".equals(columnValue))
{
columnValue = " ' "+ columnValue+ " ' ";
}
}
//System.out.println(columnValue);
}
public void endElement(String uri, String localName, String qName) throws SAXException {
if(! "DATA ".equals(qName)&&! "TABLE ".equals(qName))
{
if(! "LASTUPDATE ".equals(columnName))
{
sql += columnValue + ", ";
}
if( "LASTUPDATE ".equals(columnName))
{
sql += columnValue;
}
}
if( "TABLE ".equals(qName))
{
sql += ") ";
System.out.println(sql);
insert(sql);
sql = "insert into ";
columnName = null;
columnValue = null;
}
}
public void endDocument() throws SAXException {
}
public int insert(String sql)
{
int i = 0;
if(connect!=null)
{
i = connect.executeUpdate(sql);
}
return i ;
}
XML文件样本:
<DATA>
<TABLE tableName= "user02 ">
<USERID> 1000000001 </USERID>
<BIRTHDAY> null </BIRTHDAY>
<NATIVE> null </NATIVE>
<BIRTHPLACE> null </BIRTHPLACE>
<MARRIED> null </MARRIED>
<NATIONALITY> CN </NATIONALITY>
<USERNATIONAL> null </USERNATIONAL>
<CREATEDATE> 2007-02-11 00:00:00.0 </CREATEDATE>
<CRTBY> 012011 </CRTBY>
<MODIFYDATE> null </MODIFYDATE>
<LSTMODBY> null </LSTMODBY>
<CMT> 0 </CMT>
<CMTUSER> null </CMTUSER>
<CMTDATE> null </CMTDATE>
<APPSTATUS> 0 </APPSTATUS>
<REMARK> 921176 </REMARK>
<ISNEW> 1 </ISNEW>
<LASTUPDATE> 2007-04-28 10:58:00.0 </LASTUPDATE>
</TABLE>
...
</DATA>
[解决办法]
ddd