raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - AJAX 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,441
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 7 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!

PHP'yi AJAX ile kullanarak, bir XML belgesini hem yerel dizinden hem de bir sunucudan ayrıştırabiliriz. Aşağıdaki örnek, XML'in web tarayıcısıyla nasıl ayrıştırılacağını göstermektedir.

İstemci tarafındaki betik bir HTML formu oluşturur ve XMLHttpRequest nesnesi ile sunucuya bir HTTP isteği göndermek için bir JavaScript işlevi tanımlar.

Sunucuda, bir PHP betiği, gerekli XML belgesinden DOM nesnesini yükler, seçilen dersi $_REQUEST değişkeninden alır ve seçilen dersin ayrıntılarını yanıt olarak istemciye geri gönderir.

Adım 1

Aşağıdaki XML belgesi XAMPP sunucusunun belge kökünde saklanır.

<?xml version = "1.0" encoding = "utf-8"?>
<CATALOG>

<SUBJECT>
<COURSE>Android</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$10</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>

<SUBJECT>
<COURSE>Html</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$15</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>

<SUBJECT>
<COURSE>Java</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$20</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>

<SUBJECT>
<COURSE>Microsoft</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>TutorialsPoint</COMPANY>
<PRICE>$25</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>

</CATALOG>

Adım 2

Aşağıdaki AJAX kodu, XMLHttpRequest nesnesi aracılığıyla HTTP isteği oluşturmak için bir HTML formu ve bir JavaScript fonksiyonundan oluşmaktadır.

Kod:
<html>
<head>
   <script>
      function showCD(str) {
         if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
         }

         if (window.XMLHttpRequest) {
       
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
         } else {
       
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }

         xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
               document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
         }
         xmlhttp.open("GET","hello.php?q="+str,true);
         xmlhttp.send();
      }
   </script>
</head>
<body>
   <form>
      Select a Course:
      <select name = "cds" onchange = "showCD(this.value)">
         <option value = "">Select a course:</option>
         <option value = "Android">Android </option>
         <option value = "Html">HTML</option>
         <option value = "Java">Java</option>
         <option value = "Microsoft">MS technologies</option>
      </select>
   </form>
   <div id = "txtHint"><b>Course info will be listed here...</b></div>
</body>
</html>

Adım 3

XML belgesi içerisinde arama yapmak için sunucu tarafı PHP betiği aşağıdaki gibidir:

PHP:
<?php
   $q = $_GET["q"];

   $xmlDoc = new DOMDocument();
   $xmlDoc->load("test.xml");

   $x = $xmlDoc->getElementsByTagName('COURSE');

   for ($i = 0; $i<=$x->length-1; $i++) {
      if ($x->item($i)->nodeType == 1) {
         if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
            $y = ($x->item($i)->parentNode);
         }
      }
   }

   $cd = ($y->childNodes);

   for ($i = 0;$i<$cd->length;$i++) {
      if ($cd->item($i)->nodeType == 1) {
         echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
         echo($cd->item($i)->childNodes->item(0)->nodeValue);
         echo("<br>");
      }
   }
?>

Kullanıcının bir kurs seçmesine izin vermek için " " adresini ziyaret edin. Seçim yapıldığında, ilgili ayrıntılar sunucudan alınır ve aşağıdaki gibi görüntülenir:

php_ajax_xml_parser.jpg
 

Bire bir çeviri, reddedildi.
 

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

Geri
Üst