XOM XML 라이브러리로 파일을 구문 분석 할 때 DTD 선언을 무시할 수 있습니까? 내 파일은 다음 줄이 있습니다XML 구문 분석시 DTD 무시
<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "NCBI_BlastOutput.dtd">
//rest of stuff here
을 내가) (내 문서를 빌드 할 때 나는 DTD 파일에 대한 filenotfound 예외를 얻을. 이 파일이 없으므로 걱정하지 않으므로 XOM을 사용할 때 어떻게 제거 할 수 있습니까? 나는이 라인에서 NullPointerException이 얻을
public BlastXMLParser(String filePath) {
Builder b = new Builder(false);
//not a good idea to have exception-throwing code in constructor
try {
_document = b.build(filePath);
} catch (ParsingException ex) {
Logger.getLogger(BlastXMLParser.class.getName()).log(Level.SEVERE,"err", ex);
} catch (IOException ex) {
//
}
private Elements getBlastReads() {
Element root = _document.getRootElement();
Elements rootChildren = root.getChildElements();
for (int i = 0; i < rootChildren.size(); i++) {
Element child = rootChildren.get(i);
if (child.getLocalName().equals("BlastOutput_iterations")) {
return child.getChildElements();
}
}
return null;
}
}
: 여기
는 코드입니다 제가 성공적으로 분석 할 수있는 소스 XML 파일에서 제거 된 DTD 라인Element root = _document.getRootElement();
하지만,이 최종 생산 시스템에서는 옵션이 아닙니다.
당신이 구문 분석하는 데 사용되는'code'을 보여줄 수 : XOM에서이 같은 빌더 생성자에 XMLReader를 전달하여 가능해야한다? – bbaja42