पार्स करते समय डीटीडी को अनदेखा करना XOM xml लाइब्रेरी के साथ फ़ाइल को पार्स करते समय मैं डीटीडी घोषणा को अनदेखा कैसे कर सकता हूं। मेरे फ़ाइल निम्न लाइन है:एक्सएमएल
<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "NCBI_BlastOutput.dtd">
//rest of stuff here
और जब मैं निर्माण करने के लिए() अपने दस्तावेज़ की कोशिश मैं DTD फ़ाइल के लिए कोई filenotfound अपवाद मिलता है। मुझे पता है कि मेरे पास यह फ़ाइल नहीं है और मुझे इसकी परवाह नहीं है, तो एक्सओएम का उपयोग करते समय इसे कैसे हटाया जा सकता है?
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;
}
}
मैं इस लाइन पर एक NullPointerException मिलती है::
कोड स्निपेट है
Element root = _document.getRootElement();
DTD लाइन स्रोत एक्सएमएल फ़ाइल से हटा दिया मैं इसे सफलतापूर्वक पार्स कर सकते हैं के साथ
, लेकिन इस अंतिम उत्पादन प्रणाली में एक विकल्प नहीं है।
क्या आप पार्स करने के लिए उपयोग किए गए 'कोड' को दिखा सकते हैं? – bbaja42