Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - Basit XML Ayrıştırıcı

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,439
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 6 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

maxresdefault.jpg


Merhabalar arkadaşlar bu konumda sizler PHP'nin SimpleXML uzantısı, XML'i normal özellik seçicileri ve dizi yineleyicileriyle işlenebilen bir nesneye dönüştürmek için çok basit ve kullanımı kolay bir araç seti sağlar. Tree_based bir ayrıştırıcıdır ve basit XML dosyalarıyla iyi çalışır, ancak daha büyük ve karmaşık XML belgeleriyle çalışırken sorunlarla karşılaşabilir. Konu umarım sizler için yararlı olur lütfen eksiksiz bir şekilde okumanızı tavsiye ederim.

XML Nedir?

XML (eXtensible Markup Language), verileri depolamak ve taşımak için kullanılan, insan tarafından okunabilir ve makine tarafından anlaşılabilir bir işaretleme dilidir. XML, W3C tarafından tanımlanmış bir standarttır ve yapılandırılmış bilgileri düz metin formatında temsil etmek için kullanılır.

XML’in Temel Özellikleri​

  1. Hiyerarşik Yapı: XML, veriyi kök (root) elemanından başlayarak hiyerarşik bir şekilde organize eder. Bu, verinin düzenli ve anlamlı bir biçimde temsil edilmesini sağlar.
  2. Taşınabilirlik: XML, platform ve programlama dilinden bağımsızdır. Bu sayede farklı sistemler arasında veri paylaşımını kolaylaştırır.
  3. Esneklik: Önceden tanımlanmış etiketlere (tags) sahip olan HTML'nin aksine, XML’de kullanıcı kendi etiketlerini oluşturabilir.
  4. Okunabilirlik: Hem insanlar hem de makineler tarafından kolayca anlaşılabilir.
  5. Doğrulama: XML belgeleri, doğru yapıya sahip olduklarından emin olmak için DTD (Document Type Definition) veya XML Schema ile doğrulanabilir.

Basit bir XML Yapısı
XML dosyası, kök elemanını ve onun içinde yer alan diğer elemanları içerir. Temel bir örnek:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<kütüphane>
    <kitap>
        <başlık>Başlangıç</başlık>
        <yazar>Dan Brown</yazar>
        <yıl>2013</yıl>
    </kitap>
    <kitap>
        <başlık>Sefiller</başlık>
        <yazar>Victor Hugo</yazar>
        <yıl>1862</yıl>
    </kitap>
</kütüphane>



Aşağıdaki işlevlerde SimpleXML uzantısında tanımlanmıştır.

simplexml_load_file

simplexml_load_file () fonksiyonu bir XML dosyasını bir nesneye dönüştürür.

simplexml_load_file(
string $filename,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Verilen dosyadaki iyi biçimlendirilmiş bir XML belgesi bir nesneye dönüştürmektedir.

filename parametresi, ayrıştırılacak XML dosyasını temsil eden bir dizedir. class_name isteğe bağlı parametredir. İşlev tarafından döndürülecek nesnenin sınıfını belirtmektedir. İşlev, XML belgesinde tutulan verileri içeren özelliklere sahip SimpleXMLElement sınıfından bir nesne veya başarısızlık durumunda false döndürürmektedir.

Örnek

Aşağıdaki basit örneğe bir göz atmanız faydalı olur.

PHP:
<?php
   $xml = simplexml_load_file("test.xml") or die("Error: Cannot create object");
   print_r($xml);
?>

Aşağıdaki çıktıyı üretecektir:

SimpleXMLElement Object
(
[Course] => Android
[Subject] => Android
[Company] => TutorialsPoint
[Price] => $10
)

simplexml_load_string

simplexml_load_string () fonksiyonu bir XML dosyasını bir nesneye dönüştürmektedir.

simplexml_load_string(
string $filename,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Verilen dizgedeki iyi biçimlendirilmiş bir XML belgesi bir nesneye dönüştürür.

$data parametresi , ayrıştırılacak XML belgesini temsil eden bir dizedir. class_name isteğe bağlı parametredir. İşlev tarafından nesnesi döndürülecek sınıfı belirtir. İşlev, XML belgesi içinde tutulan verileri içeren özelliklere sahip SimpleXMLElement sınıfından bir nesne veya başarısızlık durumunda false döndürür.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   $data = "<?xml version = '1.0' encoding = 'UTF-8'?>
   <note>
      <Course>Android</Course>
      <Subject>Android</Subject>
      <Company>TutorialsPoint</Company>
      <Price>$10</Price>
   </note>";
   $xml = simplexml_load_string($data) or die("Error: Cannot create object");
   print_r($xml);
?>

Aşağıdaki çıktıyı üretecektir:

SimpleXMLElement Object
(
[Course] => Android
[Subject] => Android
[Company] => TutorialsPoint
[Price] => $10
)

simplexml_import_dom

simplexml_import_dom() fonksiyonu bir DOM düğümünden bir SimpleXMLElement nesnesi oluşturur.

simplexml_import_dom(SimpleXMLElement|DOMNode $node, ?string
$class_name = SimpleXMLElement::class): ?SimpleXMLElement

Bu fonksiyon bir DOM belgesinin bir düğümünü alır ve onu bir SimpleXML düğümüne dönüştürür. Bu yeni nesne daha sonra yerel bir SimpleXML öğesi olarak kullanılabilmektedir.

node parametresi bir DOM Element düğümüdür. İsteğe bağlı class_name, simplexml_import_dom()'un SimpleXMLElement sınıfının belirtilen alt sınıfının bir nesnesini döndürmesi için verilebilir. Bu işlev tarafından döndürülen değer, başarısızlık durumunda SimpleXMLElement veya null'dır.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   $dom = new DOMDocument;
   $dom->loadXML('<books><book><title>PHP Handbook</title></book></books>');
   if (!$dom) {
      echo 'Error while parsing the document';
      exit;
   }

   $s = simplexml_import_dom($dom);
   echo $s->book[0]->title;
?>

Aşağıdaki çıktıyı üretecektir:


Düğüm Değerlerini Alın

Aşağıdaki kod, bir XML dosyasından düğüm değerlerinin nasıl alınacağını gösterir ve XML aşağıdaki gibi olmalı:

<?xml version = "1.0" encoding = "utf-8"?>
<tutorialspoint>
<course category = "JAVA">
<title lang = "en">Java</title>
<tutor>Gopal</tutor>
<duration></duration>
<price>$30</price>
</course>

<course category = "HADOOP">
<title lang = "en">Hadoop</title>.
<tutor>Satish</tutor>
<duration>3</duration>
<price>$50</price>
</course>

<course category = "HTML">
<title lang = "en">html</title>
<tutor>raju</tutor>
<duration>5</duration>
<price>$50</price>
</course>

<course category = "WEB">
<title lang = "en">Web Technologies</title>
<tutor>Javed</tutor>
<duration>10</duration>
<price>$60</price>
</course>
</tutorialspoint>

Örnek

PHP kodu aşağıdaki gibi olmalıdır bunu dikkat ediniz.

PHP:
<?php
   $xml = simplexml_load_file("books.xml") or die("Error: Cannot create object");

   foreach($xml->children() as $books) {
      echo $books->title . "<br> ";
      echo $books->tutor . "<br> ";
      echo $books->duration . "<br> ";
      echo $books->price . "<hr>";
   }
?>

Aşağıdaki çıktıyı üretecektir:

Java
Gopal

$30
________________________________________
Hadoop
Satish
3
$50
________________________________________
html
raju
5
$50
________________________________________
Web Technologies
Javed
10
$60
________________________________________

Bu konuya benzer başka konuların devamı için lütfen yorum ve beğeni yaparak desteklerseniz sevinirim. :)
 
Moderatör tarafında düzenlendi:
Paylaşım için teşekkürler. :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst