XML Document Object Model (DOM)

Slides:



Advertisements
Benzer bir sunumlar
BILM454 – XML ve XML Web Servisleri
Advertisements

HTML
MIT504 İnternet ve Web Programlama: Javascript programlama devam Yrd. Doç. Dr. Yuriy Mishchenko.
Özel Site.NET İnternet Nedir? Soner Sevindik.
XML eXtensible Markup Language
Veri Madenciliğinde Kümeleme Slink Algoritması
Silverlight Daron Yöndem INETA Türkiye Başkanı
IT504 ~~DOM~~ Belge Nesne Modeli II
HTML, XHTML and CSS XHTML
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
WSDL -SOAP Murat tezgider
WEB Tasarımı & .NET Bolum 1
İnternet Programcılığı
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
04/02/10 Django Web Uygulamaları Geliştirmede Çağdaş bir Yaklaşım.
İşletim Sistemi Temel Bilgiler
Web Service Uygulaması
B+-Ağaçları.
Standartlar ve Protokoller
İkili Ağaçlar İkili Arama Ağaçları
Ertan Deniz Öğretim Görevlisi.
Bilgi Sistemleri – 2010 Dr. Galip Aydın Verinin Temsili.
h/.  XPath bir W3C standardıdır  XPath XML dökümanlarının kısımlarını seçmek için kullanılan bir sintakstır.  XPath sorguları.
Javascript Oğuz İNAL.
Tam İkili Ağaçlar 9. Ünite ağaçlardan bahseder.
IT504 ~~DOM~~ Belge Nesne Modeli I
Java Programlama Koleksiyon(Collection) Sınıfları
XML TEKNOLOJİLERİ BTP 206. Ders İçin Gerekli Olan Ders Kitabı –XML, Zafer Demirkol, Pusula Yayınları Yardımcı Ders Kitabı –XML How To Program, Deitel.
PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk.
XML Genişletilebilir İşaretleme Dili (eXtensible Markup Language), hem insanlar hem bilgi işlem sistemleri tarafından kolayca okunabilecek dokümanlar oluşturmayı.
Temel HTML Eğitimi Erman Yükseltürk.
0-6 Yaş Arası Çocukların Temel Gelişimsel Özellikleri
Bölüm 2 – XML Belgeleri Oluşturmak
Yrd. Doç. Dr. Yuriy Mishchenko
 Sık kullandığınız raporları Reports menüsünün altındaki User Report seçeneğinde açılan listeye ekleyerek raporlarınıza daha kolay ulaşabilirsiniz.
XML NEDİR? XML platformdan bağımsız veri taşıyabilen işaretleme dilidir. XML datanın tanımıyla ilgilidir. HTML gibi bir işaretleme(Markup) dilidir. Document.
EDUCOMMONS Yazılımı. The Center for Open Sustainable Learning.
.  HTML gibi işaretleme etiketlerini kullanan, verilerin depolanmasını sağlayan ve bu verileri metin formatında saklayan bir dildir.  HTML ile XML.
Mekân veya Yer, çe ş itli yakla ş ımlarca farklı ele alınmaktadır;
Internette iki çe ş it adresleme kullanılır. IP numarası herhangi bir bilgisayar internete ba ğ landı ğ ı anda, dünya üzerinde sadece ona ait olan bir.
SQL Sibel SOMYÜREK.
Demet AYDIN METODLAR Demet AYDIN
XML ve XML Teknolojileri
Apache Tika Kutay Yıldırıcı
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
WEB TASARIMININ TEMELLERİ
Wordpress Eğitimi 2.
Görsel C# ile Windows Programlama
Nesneye Dayalı Programlama
COMPREHENSIVE Access Dersi Hafta13 Görevleri Makrolarla Otomatikleştirmek.
Chapter 11: Dosya Sistem Arayüzü
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
MathML Mathematical Markup Language BURAK ZEYDAN
Muammer Benzeş MVP (IIS) Bulut Bilişim /muammerbenzes.
Metadata, z39.50, FRBR, ve RDA. Ders içeriği Web kaynakları ve web kaynaklarında kimlikleme Derin web – Yüzeysel web Arama Motorları Metadata Kopya Kataloglama.
Asp.Net Veritabanı İşlemleri
Delphi Ders8.
BÖTE 323: Internet Tabanlı Programlama Dr. Ercan TOP
5. HAFTA Öğr. Gör. Yunus KÖKVER
VISUAL STUDIO İÇERİSİNDE VERİ TABANI BAĞLANTISI ACCESS DATA SOURCE SAVAŞ TUNÇER
Python ve Cgi Scripting Giriş
B+-Ağaçları.
SQL (STRUCTURED QUERY LANGUAGE)
İstemci sunucu sistemleri ve ağlar
1) Radyoaktif atık nedir 2) Radyoaktif atıkların sınıflandırılması 3) Radyoaktif atıkların toplanması ve depolanması 4) Radyoaktif atıkların yarılanma.
MTM216 GÖRSEL PROGRAMLAMA
Milli Eğitim Bakanlığı Eğitek Haydar TUNA Teknik Öğretmen ve Yazar
Ortam-Bağımsız Gramerler (OBG)
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

XML Document Object Model (DOM) http://www.w3schools.com/dom/ Dr. Galip AYDIN

DOM DOM bir W3C (World Wide Web Consortium) standardıdır XML ve HTML gibi dokümanlara erişim için standart bir yol tanımlar "The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."

DOM DOM standart modeller tanımlayan 3 farklı parça/seviye içerir Core DOM: Herhangi bir yapısal doküman için XML DOM: XML dokümanları için HTML DOM: HTML Dokümanları için

XML DOM XML için standart bir nesne modeli Standart bir programlama arayüzü Platform ve dilden bağımsız XML DOM bütün XML elementleri için nesne ve özellikleri ve bunlara erişim için gerekli metodları (arayüzler) tanımlar Diğer bir deyişle DOM, XML elementlerine erişim, değiştirme, ekleme, silme gibi işlemler için bir standart sağlar.

DOM Node DOM açısından XML içindeki herşey bir düğümdür (node) Dokümanın kendisi doküman düğümüdür Her bir xml elementi bir element düğümüdür XML elementlerinin içindeki yazılar yazı düğümüdür (text node) Herbir nitelik (attribute) nitelik düğümüdür Yorum düğümleri de bulunabilir

XML DOM Tree

DOM Ağacı Düğüm ağacındaki her bir düğümün diğerleriyle hiyerarşik bir ilişkisi vardır Bu ilişkileri anlatmak için ebeveyn, çocuk ve kardeş (parent, children, siblings) terimleri kullanılır Ebeveyn düğümlerin çocukları vardır Aynı seviyedeki çocuklar kardeş (kız veya erkek) olarak adlandırılırlar

Düğüm Ağacında İlişkiler Bir düğüm ağacında en tepedeki düğüme kök denir Kök düğüm hariç her düğümün sadece bir ebeveyni vardır Bir düğümün sınırsız sayıda çocuğu olabilir Çocuğu olmayan düğümlere yaprak denir Aynı ebeveyne sahip, aynı seviyedeki düğümlere kardeş denir

XML DOM Parser XML dokümanlarını ayrıştırmak için kullanılan çeşitli uygulamalar (parser) yazılmıştır XML DOM modeli elemanlara erişim, değiştirmek, silmek veya eklemek için metotlar içerir ancak öncelikle dokümanın DOM nesnesine yüklenmesi gerekir

JavaScript DOM Parser if (window.XMLHttpRequest)   {   xhttp=new XMLHttpRequest();   } else // IE 5/6   {   xhttp=new ActiveXObject("Microsoft.XMLHTTP");   } xhttp.open("GET","books.xml",false); xhttp.send(); xmlDoc=xhttp.responseXML;

DOM Properties x.nodeName – x düğümünün ismi x.nodeValue - x düğümünün değeri x.parentNode - x düğümünün ebeveyn düğümü x.childNodes - x düğümünün çocukları olan düğümler x.attributes - x düğümünün nitelikleri

XML DOM Metotları x.getElementsByTagName(name) – verilen isimdeki bütün elementleri getir x.appendChild(node) – x düğümüne bir çocuk düğüm ekle x.removeChild(node) – x düğümünden verilen düğümü sil

<script type="text/javascript"> xmlDoc=loadXMLDoc("books <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Process only element nodes (type 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; </script>

title: Everyday Italian author: Giada De Laurentiis year: 2005 <script type="text/javascript"> text="<book>"; text=text+"<title>Everyday Italian</title>"; text=text+"<author>Giada De Laurentiis</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; xmlDoc=loadXMLString(text); // documentElement always represents the root node x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { document.write(x[i].nodeName); document.write(": "); document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); } </script> title: Everyday Italian author: Giada De Laurentiis year: 2005

Java DOM Kütüphaneleri DOM4J http://dom4j.sourceforge.net/ JDOM http://www.jdom.org/ Apache XML projeleri …

DOM4J Örnek import java.net.URL; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Foo { public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; }

Çocuk Düğümlere Erişim public void bar(Document document) throws DocumentException { Element root = document.getRootElement(); // iterate through child elements of root for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // iterate through child elements of root with element name "foo" for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) { Element foo = (Element) i.next(); // iterate through attributes of root for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next();

DOM Ağacı Üzerinde Yürüme public void treeWalk(Document document) { treeWalk( document.getRootElement() ); } public void treeWalk(Element element) { for ( int i = 0, size = element.nodeCount(); i < size; i++ ) { Node node = element.node(i); if ( node instanceof Element ) { treeWalk( (Element) node ); else { // do something....

Yeni XML Oluşturma import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Foo { public Document createDocument() { Document document = DocumentHelper.createDocument(); Element root = document.addElement( "root" ); Element author1 = root.addElement( "author" ) .addAttribute( "name", "James" ) .addAttribute( "location", "UK" ) .addText( "James Strachan" ); Element author2 = root.addElement( "author" ) .addAttribute( "name", "Bob" ) .addAttribute( "location", "US" ) .addText( "Bob McWhirter" ); return document; }

SAX – Simple API for XML SAX DOM’a alternatif olarak geliştirilmiş bir sıralı erişim ayrıştırıcısıdır (parser). XML dokümanlarını okumak için gerekli araçları sağlar. SAX olay-güdümlü (event-driven) olarak çalışan akışa göre çalışan (stream-parser) bir ayrıştırıcıdır. SAX ayrıştırıcısı karşılaştığı düğümleri sırasıyla işler (event), ve bu işleme dokümanın sonuna kadar devam eder.

SAX vs DOM SAX DOM’a göre daha küçük hafızaya ihtiyaç duyar. Özellikle büyük XML dokümanlarının işlenmesinde bu büyük bir avantajdır. DOM parser tüm XML ağacının hafızaya yüklenmesine gereksinim duyar. Olay-güdümlü yaklaşım dolayısıyla SAX parser DOM’a göre genellikle daha hızlıdır. XSLT ve XPATH gibi bazı teknolojiler tüm XML ağacına ihtiyaç duydukları için SAX parser kullanamazlar.

StAX – XML Pull Parser Araştırın ! sjsxp Woodstox Aalto