Örnek

Basit Bir XML DOM Parser Örneği

XML belgesi aşağıdaki gibidir :
<?xml version="1.0" encoding="ISO-8859-9">
<test>
	<person id="12">
		<name>Ali</name>
		<tel id="home">02129456789</tel>
	</person>
	<person id="asd">
		<name>Veli</name>
		<tel id="home">02124365</tel>
	</person>
	<person id="fasf">
		<name>Yusuf</name>
		<tel id="home">1212162840</tel>
	</person>
</test>
DOM Parser kodu aşağıdaki gibidir :
import org.w3c.dom.*;
import javax.xml.parsers.*;
import org.w3c.dom.NodeList;
import java.io.*;
public class DOMTest {
	public void print(String file) throws Exception {
		Document doc = getDocument(file);
		Element root = doc.getDocumentElement();
		printNode(root);
	}
	public void printNode(Node node) {
		System.out.println("name: " + node.getNodeName() + " value: " + node.getNodeValue());
		printAttribute(node);
		NodeList list = node.getChildNodes();
		for (int i = 0; i < list.getLength(); i++) {
			aNode = list.item(i);
			printNode(aNode);
		}
	}
	public void printAttribute(Node node){
		NamedNodeMap map=node.getAttributes();
		if(map!=null){
		for(int i=0;iNode aNode=map.item(i);
		String name=aNode.getNodeName();
		String value=aNode.getNodeValue();
		System.out.println("Attribute: "+name+" : "+value);
	}
	public DocumentBuilder getBuilder() throws Exception {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		return factory.newDocumentBuilder();
	}
	public Document getDocument(String file) throws Exception {
		DocumentBuilder builder = getBuilder();
		return builder.parse(new File(file));
	}
	static public void main(String[] args) {
		try {
			DOMTest test = new DOMTest();
			test.print("test.xml");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
Önce DocumentBuilder nesnesini yaratmamız gerekir. Ardından Document nesnesini oluşturmak için DocumentBuilder nesnesinin parse methodu kullanılır
public DocumentBuilder getBuilder() throws Exception{
	DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
	return factory.newDocumentBuilder();
}
public Document getDocument(String file) throws Exception{
	DocumentBuilder builder=getBuilder();
	return builder.parse(new File(file));
}
getBuilde method'u bize DocumentBuilder verir. getDocument methodu ise verilen bir file için Document nesnesini bize döndürür.
Artık Document nesnesini elde ettiğimize göre tüm bilgiyi basabiliriz. Önce
Element root=doc.getDocumentElement();

ile root element'i alınır. printNode bir Node'u ekrana basmak içindir. Node'un önce attribue'leri print edilir. Sonra tüm çocuklar elde edilir ve hepsi print edilir. printNode method'u recursive bir şekilde tüm node'lar bitene kadar devam edecektir.
zafer.teker , 25.05.2018

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir