Naprosto souhlasim s doporucenim Digesteru - API je jednoduche,
vysledky kod je jednodussi nez u primeho pouziti SAX, a zpracovani
je porad velmi rychle a bez DOMich naroku na pamet (zdrzeni
reflexi, na ktere je Digester postaven, je dle meho zanedbatelne).

Pavel

On 13/10/05, Roman Hrivik <[EMAIL PROTECTED]> wrote:
>
> Mne sa velmi dobre osvedcila kombinacia
>
> SAXParser (Xerces) + Digester (jakarta commons)
>
> s mapovanim digestera tak aby si nacital konkretny nod do objektu a ten
> potom predal metode na ulozenie do DB.
>
> spracovanie 50MB XML aj s ulozenim trvalo cca 10 mina pametove naroky boli
> minimalne.
>
> Roman
>
>
>
> Ales said:
> > 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