[英]java.lang.NullPointerException for NodeList
我的以下代碼有一個例外
public calculWeightdoc(OWLOntology onto, String xml) {
for(OWLClass cls: onto.getClassesInSignature()){
freqConcept(xml, cls);
System.out.println("la taille de liste : "+list.getLength());
if(list.getLength()!=0){
listConceptRetenus.put(cls, list.getLength());
}
else
{
listConceptRetenus.put(cls, 0);
}
}
}
這是FreqConcept函數
public void freqConcept(String xmldoc,OWLClass node){
try {
String filepath = xmldoc;
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
list = doc.getElementsByTagName(node.getIRI().getFragment());
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException sae) {
sae.printStackTrace();
}
}
這是一個例外:
Exception in thread "main" java.lang.NullPointerException
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.nextMatchingElementAfter(DeepNodeListImpl.java:199)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.item(DeepNodeListImpl.java:146)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.getLength(DeepNodeListImpl.java:117)
at com.onto.weight.document.calculWeightdoc.<init>(calculWeightdoc.java:59)
at com.onto.weight.document.Main_Class_une_seule_onto.main(Main_Class_une_seule_onto.java:70)
實際上,相同的代碼對於某些本體(例如擁有60個課程的人)是完美的,但是對於其他擁有大量重要課程的人(例如擁有1173個課程的Dbpedia)來說,它是行不通的,我不確定這是問題還是其他原因...
例外情況是該函數calculWeightdoc(OWLOntology onto, String xml)
那一行list.getLength()
calculWeightdoc(OWLOntology onto, String xml)
。
感謝您分享可能幫助解決該問題的任何想法。
僅當輸入未失敗解析時才進行列表初始化。 列表初始化時是否出現任何堆棧跟蹤信息? 如果是這樣,則列表保留為空。 為避免此問題,請在訪問列表之前檢查該列表是否為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.