2016-04-05 15 views
0

Sax kullanarak bir xml dosyasına okuyacak ve kaydedecek bir kod yazmayı denedim, ancak bu konuda yeniyim, bu yüzden başlığında hatayı alıyorum. İşte kod:SaxParserException Dosyanın erken sonu

public void readMoviesFromXML() 
{ 
    ArrayList<Movie> lst = new ArrayList<>(); 

    try { 
     DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
     Document document = documentBuilder.parse("movies.xml"); 
     //I get the error at the line just above 


     Node root = document.getDocumentElement(); 
     NodeList nodeList = root.getChildNodes(); 

     for(int i=0; i<nodeList.getLength(); i++) 
     { 
      Node node = nodeList.item(i); 

      if(node instanceof Element) 
      { 
       Element element = (Element) node; 

       Attr attr = element.getAttributeNode("moviename"); 
       String moviename = attr.getValue(); 

       String title = getNodeValue(element, "name"); 
       String rented = getNodeValue(element, "renttimes"); 

       Movie movie = new Movie(title, Integer.parseInt(rented)); 

       lst.add(movie); 
      } 
     } 
    }catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

    mm.setMovieMap(lst); 
} 

xml dosyası başlatılmamış ve sorun olabileceğinden endişeleniyorum. Herhangi bir yardım için teşekkür ederiz.

+0

XDocument kullanarak ayrıştırma yapmayı denediniz mi? – Apoorv

+0

XML ile aşina değilim, bu yüzden bir XDocument'in ne olduğunu bilmiyorum. –

+0

bekleyin .. bana XML belgenizi nasıl ayrıştırılacağınıza dair bir bağlantı verin! – Apoorv

cevap

0

XML Dosyanızı ayrıştırmak için aşağıdaki link'u deneyebilirsiniz. Belge ayrıştırıldıktan sonra, her zaman bir Liste veya koleksiyona veya her hangi bir veri yapısına sahip olabilirsiniz. Bir XML belgesini ayrıştırmanın birden çok yolu olduğunu söyleyeyim ve bazı teknikler yukarıdaki örnekte gösterildi

0

Sonunda çözmeyi başardım. Dosyayı boş olduğu için bana bu hatayı veriyordu, ben de onu bir elemanla başlattım ve işe yaradı.