Autor | Zpráva | ||
---|---|---|---|
tatyalien Profil |
#1 · Zasláno: 2. 3. 2011, 11:21:21 · Upravil/a: tatyalien
Prosím o radu, s xml jsem se ještě nesetkal v načítání (vždy jsem vše jel přez csv, txt...) ale zdrojové data nám předělali do xml následujícího tvaru:
XML: <?xml version='1.0' encoding='UTF-8'?> <export_lite date='2011-03-02 02:03:03'> <items> <item code='kod123' name='Název výrobku' brand='Vyrobce1' czk='599.00' eur='23.30' stock='false' date=''></item> <item code='kod32/123' name='bla bla' brand='Vyrobce1 czk='599.00' eur='23.30' stock='false' date=''></item> <item code='etw2062/5' name='jujky - juj' brand='Vyrobce2' czk='99.00' eur='3.90' stock='false' date=''></item> </items> </export_lite> Můžete mě prosím poradit jak to načítat? Zkoušel jsem: $xml = simplexml_load_file("xmlsoubor.xml"); ale dostanu se jen na atribut: date (z export_lite) ale ja potrebuji ziskavat data jen z toho <item code...> Tak jsem rozchodil toto: $xml = simplexml_load_file($string); foreach($xml->items[0]->item as $row) { echo $row["code"]."|".$row["name"]."|".$row["brand"]."|".$row["czk"]."|".$row["eur"]."|".$row["stock"]."|".$row["date"]."<hr>"; } Je to správný postup, nebo ne? (jedná se mě, abych to pak nemusel přepisovat...) |
||
__construct Profil |
#2 · Zasláno: 2. 3. 2011, 11:57:24
<?php $xml = simplexml_load_file("file.xml"); ?> <table> <thead> <tr> <th>Code <th>Name <th>Brand <th>CZK <th>EUR <th>Stock <th>Date <tbody> <?php foreach($xml->items->item as $item){ $attr = $item->attributes(); ?> <tr> <td><?php echo $attr['code']; ?> <td><?php echo $attr['name']; ?> <td><?php echo $attr['brand']; ?> <td><?php echo $attr['czk']; ?> <td><?php echo $attr['eur']; ?> <td><?php echo $attr['stock']; ?> <td><?php echo $attr['date']; ?> <?php } ?> </tr> </table> |
||
tatyalien Profil |
#3 · Zasláno: 2. 3. 2011, 12:33:37
Díky ;)
|
||
tatyalien Profil |
#4 · Zasláno: 2. 3. 2011, 13:01:08
Tak to funguje, ael co koukám, tak je tam i někdy jiná struktura v xml, některé zboží má na víc <descriptions>, <specs> atd... a některé ho nemá :-(
<item code='katalogovecislo' image='obrazek' name='Plný název' brand='Výrobce' czk='3999.00' eur='160.00' created='' changed='2009-09-25 20:42:47' new='' stock='false' date=''> <descriptions> <description title='Charakteristika' order='1'><p>Kompletní set /p></description> <description title='Obsah balení' order='3'>může zde být i htmltext....</description> <description title='Charakteristika' order='4'>aaaaa</description> <description title='Doporučujeme koupit' order='5'>bbbbbb</description> </descriptions> <specs> <spec name='Druh stavebnice'>a</spec> <spec name='Uspořádání rotorů'>b</spec> <spec name='Náročnost pilotáže'>c</spec> <spec name='Průměr rotoru'>d</spec> <spec name='Délka'>e</spec> <spec name='Výška'>f</spec> <spec name='Hmotnost'>g</spec> <spec name='Baterie'>h</spec> <spec name='Hlavní motory'>i</spec> <spec name='Doba letu'>j</spec> <spec name='Vysílač'>k</spec> <spec name='Přijímač'>l</spec> </specs> <attachments> <attachment name='Manuály' order='1'> <item type='file' src='video000' size='7063948' hash='0ab25c36721f7898aa9d9b8b5ae68487' >AAA</item> <item type='file' src='video111' size='412970' hash='ef4897007d42ffd47a8d534f463a5f1c' >výkres</item> <item type='file' src='video222' size='1338970' hash='99893283298b588ba1b15071b256abf8' >Návod</item> <item type='file' src='video333' size='899473' hash='18e161daac0cf8f5934a9e1e614e026f' >Manuál</item> <item type='url' src='video444' size='' hash='' >Tipy</item> <item type='url' src='video555' size='' hash='' >vide555</item> </attachment> <attachment name='Videa' order='2'> <item type='file' src='video' hash='' >Video</item> </attachment> <attachment name='Pohled 360°' order='4'> <item type='file' src='odkaz360' size='758' hash='' >Podled 360°</item> </attachment> </attachments> <gallery> <image ref='odkaz1' title='' size='27968' hash=''></image> <image ref='odkaz2' title='' size='17027' hash=''></image> <image ref='okdaz3' title='' size='17049' hash=''></image> </gallery> <parts> <part name='Náhradní díly' order='1'> <item code='abc'></item> <item code='def'></item> <item code='ggg'></item> <item code='adfaf'></item> </part> <part name='Tuningové díly' order='2'> <item code='ddd'></item> <item code='eee'></item> </part> <part name='Doporučené příslušenství' order='3'> <item code='eee'></item> <item code='qerq'></item> <item code='adfafa'></item> <item code='aaaa'></item> <item code='werwewr'></item> <item code='eewee'></item> </part> </parts> </item> |
||
__construct Profil |
#5 · Zasláno: 2. 3. 2011, 13:11:21
tatyalien:
To už bude trošku zložitejšie, ale prídeš na to aj sám: <pre> <?php foreach($xml->items->item as $item) { var_export($item); } ?></pre> |
||
tatyalien Profil |
#6 · Zasláno: 2. 3. 2011, 13:39:48 · Upravil/a: tatyalien
tak jsem něco sesmolil:
<?php $xml = simplexml_load_file("export_full.xml"); ?> <table> <thead> <tr> <th>Code <th>Name <th>title <th>order <tbody> <?php $i = 0; foreach($xml->items->item as $item){ $attr = $item->attributes(); ?> <tr> <td><?php echo $attr['code']; ?> <td><?php echo $attr['name']; ?> <?php if (isset($item->descriptions)) { $attrB = $item->descriptions->description->attributes(); ?> <td><?php echo $attrB['title']; ?> <td><?php echo $attrB['order']; ?> <?php } $i++; if($i == 6) { exit; } } ?> </tr> </table> Ale nevím jak se mám dostat na data z xml: <description title='Charakteristika' order='1'>TENTO TEXT</description> edit: Takto to jde, ale nejde to jednodušeji? <?php $xml = simplexml_load_file("export_full.xml"); foreach($xml->items->item as $item){ $attr = $item->attributes(); echo "Kód|".$attr['code']."|název|".$attr['name']."|"; if (isset($item->descriptions)) { foreach($item->descriptions->description as $hodnota) { echo "title|".$hodnota['title']."|order|".$hodnota['order']."|".$hodnota."|<br>"; } } echo "<hr>"; } ?> |
||
Časová prodleva: 14 let
|
0