2015-05-12 4 views
0

Пока я разбираю XML-документ, я закомментировал код как узел (для начала это плохая идея), я не буду знать, когда мы закомментировали узел/bulk и не анализировать его.JAVA Игнорировать прокомментированные теги xml

Это код, который разбирает XML-элементы:

private static boolean updateXML(File file, Document doc, NodeList nodeList) 
{ 
    if(nodeList==null) 
     return false; 

    boolean somethingChanged = false; 
    for(int i=0;i<nodeList.getLength();i++) 
    { 
     if(nodeList.item(i).hasChildNodes()) 
     { 
      somethingChanged |= updateXML(file, doc, nodeList.item(i).getChildNodes()); 
     } 
     else 
     { ... } 
    } 
} 

и когда я его отладки, я могу видеть закомментирована часть воспитан как один полный узел.

Как я могу игнорировать эти комментарии?

+1

Проверьте тип 'Node', который вы получаете. Если это «Комментарий», игнорируйте его. – RealSkeptic

ответ

3

Используйте это:

Node node = nodeList.item(i); 
if(node.getNodeType() == Node.COMMENT_NODE) { 
    continue; 
} else { 
    //do something 
} 
+0

Спасибо! именно то, что я искал – Itzik984

0

Использование DocumentBuilderFactory вы можете установить, чтобы полностью игнорировать комментарии в файле.

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
dbFactory.setIgnoringComments(true); 

Теперь разобрать любой файл:

DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse(filePath); 

документ не будет содержать каких-либо комментариев.

Смежные вопросы