[Linux-programlama] text dosyasını xml'e çevirmek..

---------

[Linux-programlama] text dosyasını xml'e çevirmek..

From: Ayris Uygur <ayrisuygur_at_yahoo.com>
Date: Thu, 26 Mar 2009 02:43:45 -0700 (PDT)
Message-ID: <804097.81378.qm@web45406.mail.sp1.yahoo.com>

slm ark.lar..ben bir text dosyasýndaki bilgileri okutup, xml dosyasýna yazmak istiyorum..fakat program sadece dosyamdaki ilk 2 property'i ("domain_name" ve "address") alarak xml'e yazýyor.."server"dan sonrasýný ("owner", "owner e-mail" vs.) almaya çalýþtýðýmda aþaðýdaki exception'ý alýyorum...

java.lang.ArrayIndexOutOfBoundsException: 2
        at ToXML.process(ToXML.java:92)
        at ToXML.doit(ToXML.java:32)
        at ToXML.main(ToXML.java:22)

aldýðým satýrlar array size'ýný nasýl geçiyor olabilir, array'im 20'lik sonuçta..bir fikriniz var mý, þimdiden teþekkür ediyorum.. :)

input dosyam aþaðýdaki þekilde :

text2.txt
-----------------------
Name: Inverse IPv4 Domain
Address: 4676 Admiralty Way
Server: ns1.blabla.com
Server2: ns2.blabla.com
Owner: Internet Assigned Numbers Authority (IANA)
Owner email: iana_at_iana.org
Registration date: 13-October-2001
Expiration Date: 20-October-2001

source code:
-------------------------
import java.io.*;
import java.util.Scanner;

// SAX classes.
import org.xml.sax.*;
import org.xml.sax.helpers..*;

import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.*;

public class ToXML {

  BufferedReader in;
  StreamResult out;

  TransformerHandler th;
  AttributesImpl atts;

  public static void main (String args[]) {
      new ToXML().doit();
  }

  public void doit () {
    try{
      in = new BufferedReader(new FileReader("/home/ayris/Masaüstü/test2.txt"));
      out = new StreamResult("/home/ayris/Masaüstü/test2.xml");
      initXML();
      String str;
      while ((str = in.readLine()) != null) {
         process(str);
      }
      in.close();
      closeXML();
    }
    catch (Exception e) { e.printStackTrace(); }
  }

  public void initXML() throws ParserConfigurationException,
      TransformerConfigurationException, SAXException {
    // JAXP + SAX
    SAXTransformerFactory tf =
       (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    
    th = tf.newTransformerHandler();
    Transformer serializer = th.getTransformer();
    serializer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
    // pretty XML output
    serializer.setOutputProperty
        ("{http://xml.apache.org/xslt}indent-amount", "4");
    serializer.setOutputProperty(OutputKeys.INDENT,"yes");
    th.setResult(out);
    th.startDocument();
    atts = new AttributesImpl();
    th.startElement("","","domains",atts);
  }

  public static byte[] sizeOf(Object obj) throws java.io.IOException
  {
  ByteArrayOutputStream byteObject = new ByteArrayOutputStream();
  ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteObject);
  objectOutputStream.writeObject(obj);
  objectOutputStream.flush();
  objectOutputStream.close();
  byteObject.close();

  return byteObject.toByteArray();
  }
  
  public void process (String s) throws SAXException {
          
          String [] elements=new String [20];
          elements=s.split("\\: ");
          atts.clear();
          

                th.startElement("","","domain",atts);
        
                th.startElement("","","domain_name",atts);
                th.characters(elements[0].toCharArray(),0,elements[0].length());
                th.endElement("","","domain_name");

    
    //System.out.println("error");

                th.startElement("","","address",atts);
                th.characters(elements[1].toCharArray(),0,elements[1].length());
                th.endElement("","","address");

                th.startElement("","","server1",atts);
                th.characters(elements[2].toCharArray(),0,elements[2].length());
                th.endElement("","","server1");
        
                th.startElement("","","server2",atts);
                th.characters(elements[3].toCharArray(),0,elements[3].length());
                th.endElement("","","server2");

                th.startElement("","","owner",atts);
                th.characters(elements[4].toCharArray(),0,elements[4].length());
                th.endElement("","","owner");
                
                th.startElement("","","owner_email",atts);
                th.characters(elements[5].toCharArray(),0,elements[5].length());
                th.endElement("","","owner_email");

                th.startElement("","","registration_date",atts);
                th.characters(elements[6].toCharArray(),0,elements[6].length());
                th.endElement("","","registration_date");

                th.startElement("","","expiration_date",atts);
                th.characters(elements[7].toCharArray(),0,elements[7].length());
                th.endElement("","","expiration_date");

                th.endElement("","","domain");
    
  }

  public void closeXML() throws SAXException {
    th.endElement("","","domains");
    th.endDocument(); }
}

      

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Thu 26 Mar 2009 - 10:32:39 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.