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;
}
}