自己摸索寫了個驗證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...