Autor Zpráva
tatyalien
Profil
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
<?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
Díky ;)
tatyalien
Profil
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'>&lt;p&gt;Kompletní set /p&gt;</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
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
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>";
}
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0