Dobry den,

resim nacteni dat z vetsiho (velkeho) xml souboru, jedna se cca o 20 MB. 
Uvedeny soubor vznikl exportem z MySQL databaze. Problem je v tom, ze i pri 
nastaveni Xms 30m mi vyhazuje OutOfmemory:Java heap space. Je nejake omezeni 
(nemyslim technicke, ale pro prakticke pouziti) , kdy jeste data ukladat do xml 
souboru a kdy jiz starost o data predat nejake databazi? Pro ukazku prikladam 
kod tridy, ve ktere se snazim nacist uvedeny soubor

Dekuji za pripadnou odpoved

Stritesky



-----------------------------------------------------------------------------------------------------------------------------------------

import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.*; 
import javax.swing.JOptionPane;
import java.util.*;


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException; 

public class CistXML{
    
    private String nazevSouboru = "";
    private TreeMap map = new TreeMap();
            //    map = new TreeMap();


public CistXML(String nazev){
    
    nazevSouboru = nazev;
try {


     DocumentBuilderFactory docBuilderFactory = 
DocumentBuilderFactory.newInstance();
     DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
     Document doc = docBuilder.parse (new File(nazevSouboru));

    // normalize text representation
    doc.getDocumentElement ().normalize ();
    System.out.println ("Hlavni element souboru je " + 
doc.getDocumentElement().getNodeName());


    NodeList listOfRow = doc.getElementsByTagName("row");
    int totalPersons = listOfRow.getLength();
    System.out.println("Celkem row : " + totalPersons); 
              
               for(int s=0; s<listOfRow.getLength() ; s++){


       Node firstPersonNode = listOfRow.item(s);
       if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){


       Element firstPersonElement = (Element)firstPersonNode; 

//-------
      NodeList firstNameTERM = firstPersonElement.getElementsByTagName("TERM");
      Element firstNameElement = (Element)firstNameTERM.item(0);

      NodeList textFNList = firstNameElement.getChildNodes();
      System.out.println("Pocet Term je : " + 
((Node)textFNList.item(0)).getNodeValue().trim());

//------- 
      NodeList lastNameTERM_1 = 
firstPersonElement.getElementsByTagName("TERM_1");
      Element lastNameElement = (Element)lastNameTERM_1.item(0);

      NodeList textLNList = lastNameElement.getChildNodes();
      System.out.println("Pocet TERM_1 je : " + 
((Node)textLNList.item(0)).getNodeValue().trim());

      map.put((String)(Object)firstNameElement,(String)(Object)lastNameElement);
}//end of if clause


}//end of for loop with s var


}
    catch (SAXParseException err) {
    System.out.println ("** Parsing error"  + err.getLineNumber () + ", uri " + 
err.getSystemId ());
    System.out.println(" " + err.getMessage ());
    JOptionPane.showMessageDialog(null,"Chyba při načítání na řádce " + 
err.getLineNumber (),"Chyba",JOptionPane.ERROR_MESSAGE);

}
    catch (SAXException e) {
        Exception x = e.getException ();
       ((x == null) ? e : x).printStackTrace ();

}
    catch (Throwable t) {
        t.printStackTrace ();
}


}//konec konstruktoru

public TreeMap dejHodnotu(){

     return map;
   }



}


Odpovedet emailem