解析文件SearchBean.java
package com.css.util.query;import com.css.db.*;
import org.apache.commons.digester.Digester;
import java.io.*;
import java.util.*;
import java.sql.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.css.wlzj.vo.query.*;//search
public class SearchBean {
private String tableName; private static Log log = LogFactory.getLog(SearchBean.class); public SearchBean() {
} public String getString() {
String resXML = "";
try {
Digester searchDigester = new Digester();
searchDigester.setValidating(true);
// digester.setValidating(false); searchDigester.addObjectCreate("query", SearchVO.class);
searchDigester.addSetProperties("query"); searchDigester.addObjectCreate("query/tables", Vector.class);
searchDigester.addSetNext("query/tables", "setTables"); searchDigester.addObjectCreate("query/tables/table", TableVO.class);
searchDigester.addSetProperties("query/tables/table");
searchDigester.addSetNext("query/tables/table", "addElement"); searchDigester.addObjectCreate("query/fields", Vector.class);
searchDigester.addSetNext("query/fields", "setFields"); searchDigester.addObjectCreate("query/fields/field", FieldVO.class);
searchDigester.addSetProperties("query/fields/field");
searchDigester.addSetNext("query/fields/field", "addElement");
searchDigester.addObjectCreate("query/wheres", Vector.class);
searchDigester.addSetNext("query/wheres", "setWheres"); searchDigester.addObjectCreate("query/wheres/conditions", WhereVO.class);
searchDigester.addSetProperties("query/wheres/conditions");
searchDigester.addSetNext("query/wheres/conditions", "addElement");
searchDigester.addObjectCreate("query/wheres/conditions/condition", ConditionVO.class);
searchDigester.addSetProperties("query/wheres/conditions/condition");
searchDigester.addSetNext("query/wheres/conditions/condition", "addCondition");
searchDigester.addObjectCreate("query/orders", Vector.class);
searchDigester.addSetNext("query/orders", "setOrders"); searchDigester.addObjectCreate("query/orders/order", OrderVO.class);
searchDigester.addSetProperties("query/orders/order");
searchDigester.addSetNext("query/orders/order", "addElement"); SearchVO svo = (SearchVO) searchDigester.parse("e:/test.xml");
String id = "";
.....................................
}xml文件:test.xml
<?xml version="1.0" encoding="UTF-8"?>
<query id="reXML" currentPage="1" resPerPage="10">
<tables>
<table name="zj_biz_tkst"/>
</tables>
<fields>
<field name="stid" transName="stid"/>
<field name="tkid" transName="tkid"/>
<field name="lsh" transName="lsh"/>
<field name="nr1" transName="nr1"/>
</fields>
<wheres>
<conditions type="0">
<condition name="nr1" value="" type="1" matchType="0"/>
</conditions>
<conditions type="0">
<condition name="tkid" value="" type="1" matchType="0"/>
</conditions>
</wheres>
<orders>
<order name="lsh" type="0"/>
</orders>
</query>执行后出错:
30 五月 2006 21:01:23 ERROR org.apache.commons.digester.Digester - Parse Error at line 1 column 89: Document root element "query", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "query", must match DOCTYPE root "null".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
。。
at java.lang.Thread.run(Unknown Source)
30 五月 2006 21:01:23 ERROR org.apache.commons.digester.Digester - Parse Error at line 1 column 89: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
package com.css.util.query;import com.css.db.*;
import org.apache.commons.digester.Digester;
import java.io.*;
import java.util.*;
import java.sql.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.css.wlzj.vo.query.*;//search
public class SearchBean {
private String tableName; private static Log log = LogFactory.getLog(SearchBean.class); public SearchBean() {
} public String getString() {
String resXML = "";
try {
Digester searchDigester = new Digester();
searchDigester.setValidating(true);
// digester.setValidating(false); searchDigester.addObjectCreate("query", SearchVO.class);
searchDigester.addSetProperties("query"); searchDigester.addObjectCreate("query/tables", Vector.class);
searchDigester.addSetNext("query/tables", "setTables"); searchDigester.addObjectCreate("query/tables/table", TableVO.class);
searchDigester.addSetProperties("query/tables/table");
searchDigester.addSetNext("query/tables/table", "addElement"); searchDigester.addObjectCreate("query/fields", Vector.class);
searchDigester.addSetNext("query/fields", "setFields"); searchDigester.addObjectCreate("query/fields/field", FieldVO.class);
searchDigester.addSetProperties("query/fields/field");
searchDigester.addSetNext("query/fields/field", "addElement");
searchDigester.addObjectCreate("query/wheres", Vector.class);
searchDigester.addSetNext("query/wheres", "setWheres"); searchDigester.addObjectCreate("query/wheres/conditions", WhereVO.class);
searchDigester.addSetProperties("query/wheres/conditions");
searchDigester.addSetNext("query/wheres/conditions", "addElement");
searchDigester.addObjectCreate("query/wheres/conditions/condition", ConditionVO.class);
searchDigester.addSetProperties("query/wheres/conditions/condition");
searchDigester.addSetNext("query/wheres/conditions/condition", "addCondition");
searchDigester.addObjectCreate("query/orders", Vector.class);
searchDigester.addSetNext("query/orders", "setOrders"); searchDigester.addObjectCreate("query/orders/order", OrderVO.class);
searchDigester.addSetProperties("query/orders/order");
searchDigester.addSetNext("query/orders/order", "addElement"); SearchVO svo = (SearchVO) searchDigester.parse("e:/test.xml");
String id = "";
.....................................
}xml文件:test.xml
<?xml version="1.0" encoding="UTF-8"?>
<query id="reXML" currentPage="1" resPerPage="10">
<tables>
<table name="zj_biz_tkst"/>
</tables>
<fields>
<field name="stid" transName="stid"/>
<field name="tkid" transName="tkid"/>
<field name="lsh" transName="lsh"/>
<field name="nr1" transName="nr1"/>
</fields>
<wheres>
<conditions type="0">
<condition name="nr1" value="" type="1" matchType="0"/>
</conditions>
<conditions type="0">
<condition name="tkid" value="" type="1" matchType="0"/>
</conditions>
</wheres>
<orders>
<order name="lsh" type="0"/>
</orders>
</query>执行后出错:
30 五月 2006 21:01:23 ERROR org.apache.commons.digester.Digester - Parse Error at line 1 column 89: Document root element "query", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "query", must match DOCTYPE root "null".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
。。
at java.lang.Thread.run(Unknown Source)
30 五月 2006 21:01:23 ERROR org.apache.commons.digester.Digester - Parse Error at line 1 column 89: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货