• 02-02-2010, 15:56:45
    #1
    Arkadşalar merhaba,
    kullanıcı tarafından girilen bir xml url'lesi içindeki verilerin listbox içinde ya da combobox içinde listeletmek istiyorum.Bu işlem nasıl olur.Daha net olması için şöyle açıklayayım.

    url : http//www.siteadi.com/klasör/deneme.xml adresini kullanıcı girecek ve bu adresdeki

    <Urun> // bu dahil değil
    <id></id>
    <ad></ad>
    <kategori></kategori>
    <fiyat></fiyat>
    <ozellikler></ozellikler>

    </Urun> // bu dadahil değil

    Kullancı buradan sadece id, ad, kategori, fiyat ve ozellikler adlı başlıkları list box da görebilecek ya da comboboxda.
  • 02-02-2010, 16:10:52
    #2
    Üyeliği durduruldu
    xml den parse etmeniz lazim hocam javascript ile. yada konuyu biraz daha acarsaniz sahsen ben tam anlayamadim
  • 02-02-2010, 16:26:46
    #3
    http://www.php.net/manual/en/simplex...ples-basic.php

    örnekteki gibi içeriği alarak bir diziye atabilir ve dizidekileri bir döngü ile combobox a yükleyebilirsiniz. Bir dizinin combobox a yüklenmesi alttaki gibi kullanılabilir:

    $atilacak = array('mtn','r10','php');
    
    echo '<select name="combobox1">';
    
    foreach ($atilacak as $option) {
       echo '<option>'.$option.'</option>';
    }
    
    echo '</select>';
    Daha önce visual studio kullandınız heral
  • 02-02-2010, 16:40:28
    #4
    Konun VS ile ne ilgisi var anlamadım ama bir verinin combobox içine nasıl aktarılacağını sormadım. Sadece bir xml oluşturulurken herkes farklı alanlar açar. biri "id" derken diğeri "ürün_id" der. bunlar aynıdır aslında ama farklı yazılmıştır.Parse etmem gerekicek herhalde.Teşekkürler.
  • 02-02-2010, 16:46:07
    #5
    Üyeliği durduruldu
    imzamdaki sınıfı indirip

    $linq=new D3Linq;
    
    $linq->query("SELECT *FROm xml_file(http://xmladresi/asd.xml)");
    
    while ($eleman=>$linq->fetch_assoc()){
    
      }
    gibi ekleyebilirsin xmldeki alanlar sana $eleman ın elemanları olarka döner. her elemanı ayrı eklemek istersen while içine bir de foreach yazarsın.
  • 02-02-2010, 16:58:14
    #6
    D3LLy adlı üyeden alıntı: mesajı görüntüle
    imzamdaki sınıfı indirip

    $linq=new D3Linq;
    
    $linq->query("SELECT *FROm xml_file(http://xmladresi/asd.xml)");
    
    while ($eleman=>$linq->fetch_assoc()){
    
      }
    gibi ekleyebilirsin xmldeki alanlar sana $eleman ın elemanları olarka döner. her elemanı ayrı eklemek istersen while içine bir de foreach yazarsın.

    teşekküler
  • 02-02-2010, 18:48:41
    #7
    dahil olan sınıf varken mantıklı değil , gerçi sınıfda güzelmiş
    çözüm bulunmuş gerçi ben yinede yazayım

    xml dosyası:
    <?xml version="1.0" encoding="windows-1254" ?>
    <urunler>
    	<urun>
    		<id>1</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 1]]></ozellikler>
    	</urun>
    	<urun>
    		<id>2</id>
    		<ad>ST 1 TB ST3500320AS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>10$</fiyat>
    		<ozellikler><![CDATA[özellik 2]]></ozellikler>
    	</urun>
    	<urun>
    		<id>3</id>
    		<ad>Samsung 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 3]]></ozellikler>
    	</urun>
    	<urun>
    		<id>4</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 4]]></ozellikler>
    	</urun>
    	<urun>
    		<id>5</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 5]]></ozellikler>
    	</urun>
    </urunler>
    php dosyası:
    <?php
    if( ! $xml = simplexml_load_file('urun.xml') ) { echo 'XML Dosyası açılamadı'; }
    else { $urungoster = $xml->xpath("/urunler/urun");
    	foreach ($urungoster as $urungoster) {
    		$selectbox .= '<option value="'.$urungoster[0]->id.'">'.$urungoster[0]->ad.'</option>';
    		$urunler .= 'urunler['.$urungoster[0]->id.']="'.$urungoster[0]->ad.'<br />'.$urungoster[0]->kategori.'<br />'.$urungoster[0]->fiyat.'<br />'.$urungoster[0]->ozellikler.'"; ';
    	}
    }	
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Xml Ürün Seçme</title>
    <style type="text/css">
    body{margin:0px;padding:0px;}
    </style>
    </head>
    <body>
    <script type="text/javascript" language="javascript">
    function urungoster(){
    	var urunler=new Array();
    	urunler[0]='seçiniz';
    	<?php echo $urunler; ?>
    	// selectbox daki deger
    	var gelendeger = document.getElementById('urun').value;
    	document.getElementById('urun_gosterimi').innerHTML = urunler[gelendeger];
    }
    </script>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <select onchange='urungoster()' name="urun" id="urun"><option value='0'>Seçiniz</option><?php echo $selectbox;?></select>
      </label>
    </form>
    <div id="urun_gosterimi"></div><!-- urun icerigi gosterilecek div -->
    </body>
    </html>
    <kd> Bak şimdi farkettim neden jquery ile yapmamışım acaba </kd>
  • 02-02-2010, 22:43:47
    #8
    felix59 adlı üyeden alıntı: mesajı görüntüle
    dahil olan sınıf varken mantıklı değil , gerçi sınıfda güzelmiş
    çözüm bulunmuş gerçi ben yinede yazayım

    xml dosyası:
    <?xml version="1.0" encoding="windows-1254" ?>
    <urunler>
    	<urun>
    		<id>1</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 1]]></ozellikler>
    	</urun>
    	<urun>
    		<id>2</id>
    		<ad>ST 1 TB ST3500320AS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>10$</fiyat>
    		<ozellikler><![CDATA[özellik 2]]></ozellikler>
    	</urun>
    	<urun>
    		<id>3</id>
    		<ad>Samsung 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 3]]></ozellikler>
    	</urun>
    	<urun>
    		<id>4</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 4]]></ozellikler>
    	</urun>
    	<urun>
    		<id>5</id>
    		<ad>WD 1 TB WD1001FALS</ad>
    		<kategori>HDD</kategori>
    		<fiyat>90$</fiyat>
    		<ozellikler><![CDATA[özellik 5]]></ozellikler>
    	</urun>
    </urunler>

    öncelikle herkesin cevapları için teşekkür ederim.Fakat aradıklarım bun değil.Şöyle anlatsam daha iyi olucak herhalde ;

    text = " xml urlsi girilecek " ;

    ( Burada farklı xml'ler var.farklı derken kimileri urun der kimileri urunAd der.Ben bu isimleri alıcam.<id></id><ad></ad> bana öncelikle bunlar lazım.<urun> lazım değil.)Bu başlıkları bir comboboxda liseletip ya da listbox'da db dek hücreler ile eşleştireceğim.

    Umarım anlatabilmişimdir.

    Cevaplarını için tekrar teşekkür ederim
  • 02-02-2010, 22:51:39
    #9
    Üyeliği durduruldu
    zaten bu sınıf da simplexml_load_file kullanıyor güzel yanı verileri sql sorgusu gibi süzüp istediğin alanı alabilmen.

    arkadaşın bahsettiği şeyi de anladım sınıf da bunu yapar istersen pm at yardımcı olayım.