XPath, HTML ve XML gibi ağaç yapısı verilerinden gerekli bilgileri doğru ve verimli şekilde belirleyen ve çıkaran bir teknolojidir.
XPath Genel Bakış
XPath, XML veya HTML belge ağacında belirli öğeleri ve öznitelikleri belirtmek ve çıkarmak için kullanılan bir dildir. Web sayfaları genellikle HTML'den oluştuğundan, XPath web kazıma, veri alma ve XML veri araması gibi çeşitli senaryolarda yaygın olarak kullanılır.
Tipik kullanım şekli şöyledir:
- Web Tarayıcılarında Veri Çıkarma: XPath, e-ticaret sitelerindeki ürün bilgileri veya haber sitelerindeki makale başlıkları gibi belirli verileri otomatik olarak almak için kullanılır.
- XML Veri Arama ve İşleme: İş sistemlerinde ve veri bağlantısı işlemede veri genellikle XML formatında değiş tokuş edilir. XPath kullanarak, büyük miktarda XML verisinden gerekli bilgileri verimli bir şekilde çıkarabilirsiniz.
- API Yanıtlarını Ayrıştırma (XML Formatı): SOAP gibi XML tabanlı API'ler kullanılırken, yanıt verisini ayrıştırmak için XPath kullanılır. Bu, belirli durum kodlarını ve sonuç verilerini hızlıca elde etmenizi sağlar, sistem entegrasyonunun doğruluğunu ve otomatik işlemeyi artırır.
Araç önerisi
XPath öğrenme ve kullanma sürecinde yaygın araçlar şunlardır:
Chrome Geliştirici Araçları: Chrome tarayıcısıyla birlikte gelen güçlü bir araç, F12 tuşuna basarak adlandırabilirsiniz. "Öğeler" panelinde, bir web sayfasında HTML öğelerini hızlıca bulup üzerine gelerek tıklayabilirsiniz ve bir öğeye sağ tıklayarak XPath ifadesini doğrudan kopyalayarak kolayca doğrulama ve test yapabilirsiniz. Örneğin, bir e-ticaret ürün sayfasını analiz ederken, ürün isimleri, fiyatları ve diğer öğeler için XPath almak için Chrome geliştirici araçlarını hızlıca elde edebilirsiniz. Firefox Geliştirici Araçları: Ayrıca Chrome Geliştirici Araçlarına benzer şekilde tarayıcı ile birlikte gelir. Ayrıca sayfanızdaki öğeleri kolayca bulmanızı ve XPath ifadelerini görüntülemenizi ve test etmenize olanak tanır. Firefox tarayıcısını kullanmaya alışkın geliştiriciler için iyi bir seçenektir. Çevrimiçi XPath test araçları: "XPath Tester" gibi çevrimiçi araçlar kurulumsuz kullanılabilir ve bir web sayfası açılarak kullanılabilir. Sadece bir XML veya HTML belgesinin içeriğini yapıştırın, bir XPath ifadesi girin ve eşleşme sonuçlarını gerçek zamanlı olarak görün. Bu araç özellikle yeni başlayanlar için hızlı başlamak ve basit XPath egzersizleri yapmak için uygundur. XPath Yardımcı Eklentisi: Chrome Tarayıcı'yı örnek alarak, XPath Helper eklentisini yükledikten sonra, webde gezinirken tarayıcı arayüzüne kayan bir pencere ekliyor, mevcut fare-over öğesinin XPath yolunu gösterir ve XPath ifadelerini doğrudan pencerede düzenleyip test edebilirsiniz, bu da geliştirme verimliliğini büyük ölçüde artırır.
XPath Soyut Sözdizimi
Bir düğüm seç
XPath, bir XML belgesinde düğümleri seçmek için yol ifadeleri kullanır. Düğümler, bir yol veya adım takip edilerek seçilir. En faydalı yol ifadeleri aşağıda listelenmiştir:
ifade | Açıklama | | düğüm adı | Bu düğümün tüm child düğümlerini seçer. | | / | Kök düğümden seçin (çocuk düğümü alın). | | // | Belgedeki düğümleri, konumlarından bağımsız olarak, eşleşme seçiminin mevcut düğümünden seçer (sonraki düğümleri alın). | | . | Mevcut düğümü seçin. | | .. | Mevcut düğümün ana düğümünü seçin. | | @ | Bir özellik seçin. |
Aşağıdaki tabloda, bazı yol ifadelerini ve ifadelerin sonuçlarını listeledik:
Yol ifadeleri | sonuç | | kitabevi | Kitapçı adında tüm düğümleri seçin. | | /bookstore | Kök element kitapçısını seçin. Not: Eğer yol ileri doğru eğik çizgi ( /) ile başlarsa, bu yol her zaman bir elemana mutlak bir yolu temsil eder! | | Kitapçı/Kitap | Kitapçının çocuk unsurları olan tüm kitap öğelerini seçer. | | //book | Belgedeki konumları ne olursa olsun tüm kitap alt öğelerini seçer. | | Kitapçı//Kitap | Kitapçı öğesinin töreni olan tüm kitap öğelerini, kitapçı altında nerede bulunduklarına bakılmaksızın, seçin. | | @lang | Lang adlı tüm mülkleri seçin. |
Yüklemler
Bir predikat, belirli bir düğümü veya belirli bir değeri içeren bir düğümü bulmak için kullanılır. Önlem kare parantez içinde gömülmüştür. Aşağıdaki tabloda, önlemli bazı yol ifadelerini ve ifadelerin sonuçlarını listeliyoruz:
Yol ifadeleri | sonuç | | /bookstore/book[1] | Kitapçı çocuğu öğesinin bir parçası olan ilk kitap öğesini seçin. | | /bookstore/book[last()] | Kitapçı alt unsurunun son kısmını seçer. | | /bookstore/book[last()-1] | Kitapçı çocuğu öğesine ait olan sondan bir önceki kitap öğesini seçer. | | /bookstore/book[position()<3] | Kitapçı öğesinin alt öğeleri olan ilk iki kitap öğesini seçin. | | Başlık[@lang] | Lang adlı bir özelliği olan tüm başlık öğelerini seçer. | | başlık[@lang='eng'] | Eng'i değeri olan dil özelliğine sahip tüm başlık öğelerini seçer. | | /bookstore/book[price>35.00] | Kitapçı öğesinin tüm kitap öğelerini seçer ve fiyat öğesinin değeri 35.00'dan büyük olmalıdır. | | /bookstore/book[price>35.00]//title | Kitapçı öğesinde kitap öğesinin tüm başlık öğelerini seçer ve fiyat öğesinin değeri 35.00'dan büyük olmalıdır. |
Bilinmeyen bir düğüm seçin
XPath joker kartları, bilinmeyen XML öğelerini almak için kullanılabilir.
joker karakter | Açıklama | | * | Herhangi bir element düğümünü eşleştirir. | | @* | Herhangi bir özellik düğümünü eşleştirir. | | node() | Her tür düğümle eşleşir. |
Aşağıdaki tabloda bazı yol ifadelerini ve bu ifadelerin sonuçlarını listeliyoruz:
Yol ifadeleri | sonuç | | /bookstore/* | Kitapçı öğesinin tüm alt öğelerini seçer. | | //* | Belgedeki tüm öğeleri seçer. | | başlık[@*] | Tüm başlık öğelerini nitelikli seçer. |
Birkaç yol seçin
Yol ifadesinde "|" kullanılarak Operatörler, birkaç yol seçebilirsiniz.
Aşağıdaki tabloda bazı yol ifadelerini ve bu ifadelerin sonuçlarını listeliyoruz:
Yol ifadeleri | sonuç | | //book/title | //book/price | Kitap öğesinin tüm başlık ve fiyat öğelerini seçer. | | başlık | fiyat | Belgedeki tüm başlık ve fiyat unsurlarını seçin. | | /bookstore/book/title | //price | Kitapçı öğesine ait olan kitap öğesinin tüm başlık öğelerini ve belgedeki tüm fiyat öğelerini seçer. |
XPath fonksiyonu
Aşağıda, temel XPath fonksiyonları ve XSLT tarafından XPath'a eklenen, açıklamalar, sözdizimi, parametre listeleri, sonuç türleri ve ilgili W3C önerilerindeki kaynaklar dahil olmak üzere yorumlanan bir listedir.
- Boolean()
- tavan()
- seç()
- concat()
- contains()
- count()
- current() XSLT'ye özgü
- belge() XSLT'ye özgü
- element-available()
- yanlış()
- floor()
- format-number() XSLT'ye özgü
- fonksiyon-erişilebilir()
- generate-id() XSLT'ye özgü
- id()
- key() XSLT'ye özgü
- lang()
- last()
- local-name()
- isim()
- namespace-uri()
- normalize-space()
- not()
- number()
- pozisyon()
- round()
- başlar-with()
- string()
- string-length()
- alt diz()
- substring-after()
- alt dizis-önce()
- sum()
- sistem-özellik() XSLT'ye özgü
- çevir()
- true()
- unparsed-entity-url() XSLT spesifik
Pratik sınavlar
Chrome'u açın ve aşağıdaki komutla tüm A sekmesi bağlantılarının metin içeriğini alın:
Aşağıda gösterildiği gibi:
Referans:Bağlantı girişi görünür. |