dom4j可以解析任何的xml文件。你的超时一定是由其他原因引起的。比如,你读取访问xml的方式等等。由于看不到你的读取xml文件的代码,所以不知道具体原因

解决方案 »

  1.   

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="ROLE">    <resultMap id="result-ROLE" class="com.uniland.rights.entity.Role">
            <result property="id" column="ROL_ID" />
            <result property="name" column="ROL_NAME" />
            <result property="descript" column="DESCRIPT" />
        </resultMap>    <delete id="ROLE-delete">DELETE FROM UTAA_ROLE WHERE ROL_ID = #id#</delete>
        
        <insert id="ROLE-insert" parameterClass="com.uniland.rights.entity.Role">
            INSERT INTO UTAA_ROLE (ROL_ID
            <dynamic>
                <isNotNull prepend=", " property="name">ROL_NAME</isNotNull>
                <isNotNull prepend=", " property="descript">DESCRIPT</isNotNull>
            </dynamic>
            ) VALUES (#id#
            <dynamic>
                <isNotNull prepend="," property="name">#name#</isNotNull>
                <isNotNull prepend=", " property="descript">#descript#</isNotNull>
            </dynamic>
            )
        </insert>    <update id="ROLE-update" parameterClass="com.uniland.rights.entity.Role">
            UPDATE UTAA_ROLE SET ROL_ID = #id#
            <dynamic>
                <isNotNull prepend=", " property="name">ROL_NAME = #name#</isNotNull>
                <isNotNull prepend=", " property="descript">DESCRIPT = #descript#</isNotNull>
            </dynamic>
            WHERE ROL_ID = #id#
        </update>    <statement id="ROLE-search" parameterClass="com.uniland.rights.entity.Role" resultMap="result-ROLE">
            SELECT * FROM UTAA_ROLE
            <dynamic prepend="WHERE">
                <isNotNull prepend="AND" property="id"> ROL_ID = #id#</isNotNull>
                <isNotNull prepend="AND" property="name"> ROL_NAME like '$name$%'</isNotNull>
                <isNotNull prepend="AND" property="descript"> DESCRIPT like '$descript$%'</isNotNull>
            </dynamic>
            ORDER BY ROL_ID
        </statement>
    <statement id="ROLE_existsName" parameterClass="com.uniland.rights.entity.Role" resultClass="java.lang.Integer">        
            SELECT COUNT(ROL_ID) FROM UTAA_ROLE WHERE ROL_NAME = #name#  
            <dynamic>
                <isNotNull prepend="AND" property="id"> ROL_ID != #id#</isNotNull>
            </dynamic>
        </statement>
        <statement id="ROLE-getOne" parameterClass="java.lang.Long" resultMap="result-ROLE">
            SELECT * FROM UTAA_ROLE WHERE ROL_ID = #value#
        </statement>
        
        <statement id="ROLE-searchMaxID" resultClass="java.lang.Long">SELECT nvl(MAX(ROL_ID),0) AS MAX_ID FROM UTAA_ROLE</statement></sqlMap>
    读这个就报错
      

  2.   

    我说的代码不是指的这个,而是指的你读取xml文件的java代码。解析xml之前,先要读取这个xml文件。你是如何读取的?把这个代码贴出来
      

  3.   


        public static String getResultColumn (String resultName, String property) {
            String[][] returnArr = null;
            SAXReader reader = new SAXReader ();
            File configFile = new File (ConstantUtils.resultPath);
            Document document = null;
            try {
                document = reader.read (configFile);
                // System.out.println (document.asXML ());
            }
            catch (Exception ex) {
                ex.printStackTrace ();
            }
            // System.out.println
            // (document.selectSingleNode("/resultMap[@id='"+resultName+"']").asXML
            // ());
            List list = document.selectSingleNode (
                "/resultMap[@id='" + resultName + "']").selectNodes ("result");
            Iterator iter = list.iterator ();
            String returnStr = null;
            while (iter.hasNext ()) {
                Element element = (Element) iter.next ();
                if (element.attributeValue ("property").equals (property)) {
                    returnStr = element.attributeValue ("column");
                    break;
                }        }
            return returnStr;
        }
      

  4.   

    超时应该是因为解析dtd,然后你的机器连网络上的dtd文件的时候出的
    xml文件里的
    <!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd">
    删掉试试