dom4j通過dtd或者schema驗證xml

2021-04-21 13:58:44 字數 1686 閱讀 6852

自己摸索寫了個驗證xml的類 可能還存在缺陷 先記錄下

/*** 本類用於驗證xml有效性

* */

public

class xmlvalidation  else

if (monde == monde_schema)  else 

return flag;

}/**

* 校驗 dtd 的方法

* * @param xmlfile

*            xml檔案路徑

* @param validationfile

*            校驗檔案路徑

* @return 校驗是否成功

*/private

static boolean testxmlbydtd(final string xmlfile,

final string validationfile)  catch (filenotfoundexception e) 

inputsource ins = new inputsource(is);

ins.setpublicid(publicid);

ins.setsystemid(systemid);

return ins;// 返回 inputsource例項 }};

saxreader reader = new saxreader(true);

reader.setentityresolver(resolver); // 向sax 驅動器註冊一entityresolver個例項。

boolean flag = validate(xmlfile, reader);// 呼叫驗證方法

return flag;

}/**

* 驗證 xsd 方法

* * @param xmlfile

*            xml檔案路徑

* @param validationfile

*            校驗檔案路徑

* @return 校驗是否成功

*/private

static boolean testxmlbyxsd(final string xmlfile,final string validationfile)  catch (saxexception e) 

boolean flag = validate(xmlfile, reader);// 呼叫驗證方法

return flag;

}/**

* * @param xmlfile xml檔案路徑

* @param validationfile 校驗檔案路徑

* @param reader  saxreader 物件

* @return 校驗是否成功

*/private

static boolean validate(final string xmlfile, final saxreader reader)  catch (filenotfoundexception e)  catch (unsupportedencodingexception e)  catch (documentexception e) 

} else

return

false;

if (errorhandle.geterrors().hascontent()) 

return

true;}}

DOM4J解析忽略DTD

最近解析第三方的xml 報錯提示找不到dtd,那麼如何忽略呢,網上有很多辦法,覺得最有效的辦法如下 1 去掉xml檔案中的doctype或者將doctype中指定的網際網路dtd檔案改為引用本地dtd檔案 相信大部分同仁都不大會同意第一種辦法,呵呵,我也不太贊同。於是開始尋找第二種方案的解決辦法 r...

dom4j 使用dom4j生成xml

使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...

dom4j通過xpath查詢xml

獲取document saxreader saxreader new saxreader document document saxreader.read fileutil.getfileinputstream filename 查詢element string xpath rec vol corr...