2015-07-02 2 views
0

Мне нужно проверить кучу .xml файлов для определенного разрешения, которое является атрибутом. Если есть такой атрибут разрешения, мне нужно выяснить, какое значение имеет атрибут.XPath проверить атрибут и показать значение

это мой код, который производит NullPointerExceptions:

public static void checkXmlPermissions(String path) 
    { 
     FileInputStream file; 
     try                         
     { 
      file = new FileInputStream(new File(path)); 

      DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); 
                              //XPath initialisieren; 
      DocumentBuilder builder = builderFactory.newDocumentBuilder();       

      Document xmlDocument = builder.parse(file); 

      XPath xPath = XPathFactory.newInstance().newXPath(); 


      String expression ="//*[@permission]";                   //Expression; 
      NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET); 

      for (int i = 0; i < nodeList.getLength(); i++) 
      { 
       String match = nodeList.item(i).getFirstChild().getNodeValue(); 
       System.out.println(match); 

      } 
     } 
     catch(Exception ex) 
     { 
      System.out.println(ex); 
     } 

    } 

Я думаю, что моя ошибка является NodeList, но я не могу найти решение самостоятельно.

+2

какой линии вызывает исключение? можете ли вы показать пример ввода? –

ответ

1

изменение:

String match = nodeList.item(i).getFirstChild().getNodeValue(); 

к:

String match = nodeList.item(i).getTextContent(); 
Смежные вопросы