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