İçindekiler:
Video: HtmlAgilityPack nasıl yüklenir , nasıl aktif edilir ? | c# nuget Package 2024
Doğrusal düşünce ve bütüncül düşünce arasındaki ayrım, SAX'i DOM'dan ayırıyor (sırasıyla).
SAX (Simple API for XML), bir XML belgesini, bir belge baştan başa doğru, başından sonuna kadar doğrusal olarak ele alır. Ancak DOM (Belge Nesnesi Modeli) ile atlamak ve tüm belgeye bakmak. Biraz sonra, kök öğesini büyütüp kök öğedeki bir öğeye daha yakından odaklanıyorsunuz. Bazı durumlarda atlamak tam olarak ne yapmanız gerektiğidir.
DOM düğümleri
DOM ile, bir XML belgesini düğümleri olarak düşünürsünüz. Düğüm örnekleri, elemanları, nitelikleri, açıklamaları ve bir çift başlangıç ve bitiş etiketi arasındaki karakterleri içerir. Tüm bir XML belgesinin kendisi bir düğümdür. Sonuçta, bir XML belgesi 12 farklı düğüm çeşidine sahip olabilir.
Bir ağacın düğümleri
Birlikte ele alındığında, bir XML belgesindeki tüm DOM düğümleri ağaç oluşturur. Örneğin Listeleme 1'deki belgeyi ele alalım. Bu belgenin DOM ağacı, Şekil 1'de gösterilen ağaca benziyor.
Listeleme 1: Hamsi Aşıkları Kulübü
Kurucu, Başkan, Sekreter, Tanıtım Müdürü
Ağacın on bir düğümü var. Onları saymak için, ağacın dallarını sayarak başlayın (Şekil 1'de rahatça görülebilir). Sonra üye firstname = "Herbert" şubesini ikinci kez say. (Bu dalı üzerinde iki DOM düğümü bulunur Member adı verilen öğe bir düğümdür ve elementin özniteliği firstname = "Herbert" bir düğümdür.)
Ağaçlar üzerine bir tarihe
Şekilte verilen ağaca bakarak keşfedeceğiniz birkaç şey var 1.
- Bazı düğümler, diğer düğümlerin çocuklarıdır. Örneğin, üye düğüm AnchovyLoversClub düğümünün çocuğu 'dır. Bunun nedeni, Liste 1'de Üye elemanı AncoverLoversClub öğesinin iç içe yerleştirilmiş olmasıdır.Benzer şekilde, Daimi düğüm Üye düğümünün bir alt öğesidir. Bu aile benzetmesi devam ediyor. Üye düğüm, Daimi düğümün üst ve AncoverLoversClub Üye düğümünün üst öğesidir.
- Tüm belge bir düğümdür. Bu önemli bir noktadır ve unutulması kolaydır. Listeleme 1'de, belgenin kök öğesi AnchovyLoversClub'dır. Fakat Şekil 1'de AnchovyLoversClub adı ağacın üstünde değildir. Bunun yerine, #document sözcüğü ağacın üst kısmındadır.Bir DOM ağacının en üstteki düğümü tüm bir XML belgesini temsil eder. Programcılar belgenin kök öğesinin ağacı başlattığını düşündüğünde hatalar oluşur.(Değildir.)
- Yorumlar ve metin parçaları düğümlerdir. Şekil 1'de, açıklama belge düğümünün bir alt düğümdür. Bunun nedeni, Liste 1'de, yorum dokümanın bir parçası olmasıdır. Yorum, belgenin öğelerinden herhangi birinin içine yerleştirilmemiştir.Bir kez daha, soy bilişini oynuyoruz. #Document düğümünde iki çocuğa - bir yorum düğümüne ve AnchovyLoversClub düğümüne sahip olduğumuzu söylüyoruz. Bu iki düğüm - yorum ve AnchovyLoversClub - kardeşler olarak anılır.Ayrıca Şekil 1'de Kurucu, Başkan, Sekreter, Tanıtım Müdürü metninin bir parçasıdır. Liste 1'de Metin Kurucu, Başkan, Sekreter, Tanıtım Müdürü Duran unsurun içindedir. Yani Şekil 1'de bu metin düğümü Daimi düğümün bir çocuğudur.
- İmzasız metin bile bir düğümün parçasıdır. Şekil 1'e göre, AnchovyLoversClub düğümü üç doğrudan çocuk düğümüne sahiptir - iki numara #text ve üye olan diğer düğüm etiketli düğümler. Bunun nedeni, AnchovyLoversClub düğümünün DOM'u söz konusu olduğunda içinde üç şey vardır.
satır başı ve üç boşluk
Üye unsuru
satırbaşı
-
Durum Şekil 2'de gösterilmiştir.
-
Üç üye düğümün çocukları - iki boşluk boşluğu ve bir Duran unsur - hepsi kardeşlerdir.Şimdi, Şekil 1 ve 2'deki noktaları ve [cr] dikkat edin. Ağaç diyagramında, bir nokta boş bir alanı, ve [cr] bir satır başı temsil eder. DOM ile, AnchovyLoversClub başlangıç etiketi ile Üye başlangıç etiketi arasındaki tüm ihmal edilebilir boşluklar bir düğüm oluşturur. AnchovyLoversClub başlangıç etiketini sonlandıran köşeli parantezle başlayarak bir sonraki satıra gidersiniz ve Üye açılış etiketini açan açı ayraçından önce üç boş alana sahipsiniz. Bütün bunlar DOM düğümüdür.
- Bitiş etiketleri düğüm değildir. SAX ile, Üye öğesini başlatma ve daha sonra Üye öğesini sona erdirme düşünebilirsiniz. DOM'da, böyle düşünmüyorsunuz. Bunun yerine, üye öğesini yalnızca bir kez ziyaret ettiniz. Bu ziyarette, Daimi öğeyi ve bazı metni ziyaret ettiniz. DOM, SAX endElement yöntemine karşılık gelen hiçbir yöntemi içermiyor.