Tweet

Xml Parser

XML Parser

Merhaba arkadaşlar bu yazımızda sizlere Xml Parser konusundan söz edeceğim.Öncelikle xmlparser nedir ondan söz edelim..Parser mevcut bir xml dosyasından bilgi elde etmek amacıyla kullanılan bir api olarak tanımlanabilir.Parser'ları ikiye ayırmamız mümkün..
Bunlardan ilki Dom ikincisi ise Sax isimli parser'lardır.[...] Şimdi kısaca Dom parser'ından bahsedelim.

Dom parser'ı mevcut xml dosyasındaki normal veya iç içe yazılmış olan verileri hafızaya taşıma işlemini gerçekleştirir.Dosyanın bir kopyası hafızada aynen oluşturulmaktadır.Öncelikle parser dosyadaki bu verileri tek tek okur ve yine bellekte kendi türünden bir nesne oluşturur.Daha sonrasında bu nesneye dom parser'ı ile erişilip nesnede tutulan veriler okunabilir.özniteliklere,değerlere ve veri ismine ulaşmak mümkündür.

Şimdi Sax parser'ları inceleyelim..

Olay temelli olan sax parser'lar, xml dosyasını tümüyle inceler,inceleme esnasında yapılmakta olan her olay yani değişiklik şu şekilde ifade edilir;

dosya başladı,karakter okundu,işlem tamamlandı vb.

Sax parser'larının önemli bir özelliği ise çağıracağınız element için bütün dosyayı okuma gereksiniminin olmamasıdır.Yani siz bir element çağırmak istediğiniz zaman parser sizin belirttiğiniz elemente denk geldiği vakit elementin bütün özniteliklerini kullanıcıya iletir.Kısaca bu öznitelikler arasından istediğiniz elementin olup olmadığını net olarak anlamak mümkündür id numarasına bakarak.


CODE:
import java.io.*;
import org.xml.sax.*;
import javax.xml.parsers.SAXPaarserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParsers;

public class BooksLibrary extends HandlerBase
{
}


Ayrıştırıcımızı yani parser'ımızı oluşturalım..

CODE:
public static void main (String argv[])
{
SAXParserFactory factory = SAXParserFacroty.newInstance();
try{

out=new OutputStreamWriter(System.out, "UTF8");
SAXParser saxParser = factory.newSaxParser();
saxParser.parse(new File(XML_FILE_NAME),new BooksLibrary());
}catch (Throwable err){
err.printStackTrace ();
}
}


CODE:
/*
*Xml Dosyası ayrıştırılmaya başlanıyor..
*/

public void startDocument() throws SAXException
{
}


CODE:
/*
*Dosya ayrıştırılması bitiriliyor..
*/

public void endDoucment () throw SAXException
{
}


CODE:
/*
*Element isimlerini alıyoruz..
*/

public void startElement ( String name, AttritubeList attrs) throws SAXException
{
}

CODE:
/*
* elemente ulaşıldığında işlem tamamlanıyor..
*/

public void endElement ( string name ) throws SAXException
{
}


public void characters ( char buf [], int offset, int len ) throws SAXException
{
}

public void processingInstructaion ( String target, String data ) throws SAXException
{
}


Çalıştırmak için ise ;

Window Ortamında

CODE:
javac-classpath %XML_HOME%javxp.jar;%XML_HOME%parser.jar BooksLibrary.java

java - classpath.;%XML_HOME%jaxp.jar;%XML_HOME%parser.jar library.xml



Unix Ortamında

CODE:
javac -classpath ${XML_HOME}/jaxp.jar:${XML_HOME}/parser.jar BooksLibrary.java 

java -classpath .:${XML_HOME}/jaxp.jar:${XML_HOME}/parser.jar BooksLibrary library.xml

Bazı tanımlamaların açıklamalarınıda yapalım;

XML_HOME : JAXP ve Proje X kütüphanelerini yüklemektedir
jaxp.jar : JAXP-specific apilerini içermektedir
parser.jar : Sax ve DOM apilerinin yanı sıra Project X kütüphanesini içermektedir


Hepinize iyi çalışmalar arkadaşlar..

thecoders.net | Oguzz


Oguzz
oguz@thecoders.net
23 Ekim 2008 11:22

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg