Zadejte hledaný výraz...

Parsování vnořených záznamů v XML

romank
verified
rating uzivatele
(2 hodnocení)
19. 1. 2011 22:01:39
Ahoj, měl bych jeden dotaz, mám XML soubor data z něj se mi podařilo natáhnout pomocí níže uvedeného scriptu, rád bych ale vytáhl i tyto proměné z tohoto XML souboru (tzn. intParameterID, intParameterName, parameterValue)
a zde je část kódu díky kterému tahám např. jen ID zboží, bohužel složené XML s více "podatributů" neumím :-(
$doc = new DOMDocument();
$doc->load("seznamzbozi.xml");
foreach ($doc->getElementsByTagName('stockHeader') as $node) {
$idvyrobkuxml = iconv('utf-8','windows-1250',$node->getElementsByTagName('id')->item(0)->nodeValue);
}
Děkuji za rady
19. 1. 2011 22:01:39
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601428
Michal Haltuf
verified
rating uzivatele
(4 hodnocení)
20. 1. 2011 00:02:41
S DOMDocumentem moc neumím, může být řešení v simplexml? :o)
20. 1. 2011 00:02:41
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601427
romank
verified
rating uzivatele
(2 hodnocení)
20. 1. 2011 09:49:52
Napsal RejpalCZ;616676
S DOMDocumentem moc neumím, může být řešení v simplexml? :o)
Je mi jedno v čem to bude, hlavně, že to splní svůj účel, simplexml jsem také zahlédl, ale domdocument mi funguje. Ale pokud by si měl řešení jak rozpársovat toto XML v simplexml tak se nebudu zlobit :-) DOMDocument jsem si nastudoval a pomocí něj to rozjel, ale neumím dále vnořené záznamy parsovat :-(
20. 1. 2011 09:49:52
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601426
Michal Haltuf
verified
rating uzivatele
(4 hodnocení)
20. 1. 2011 11:28:46
Můžeš mi poslat souvislý kus toho xml (tj. i s parent nody a všemi definicemi)? - není potřeba celý xml, stačí jeden element stockHeader a jeho děcka - jen aby to byl validní XML.
20. 1. 2011 11:28:46
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601425
romank
verified
rating uzivatele
(2 hodnocení)
20. 1. 2011 11:50:41
Není problém, je to tady níž. Lze z toho usoudit, že jsou zde hlavní kategorie a potom jsou zde jen ctg:subCategories jako podkategorie, potřebuji tedy vypársovat hlavní kategorie, které sice teď mám, ale podkategorie nedokážu vyparsovat, abych je mohl také zapsat do mysql
20. 1. 2011 11:50:41
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601424
Michal Haltuf
verified
rating uzivatele
(4 hodnocení)
20. 1. 2011 12:24:08
Je asi dobrý si to rozdělit do metod, ale v principu je parsování xml pomocí simplexml (PHP 5+) takovéto. Trošku to komplikují ty namespace, co tam máš:
Každý foreach by měl být ještě obalen podmínkou (if is_array) ... je to tak pochopitelné? :)
20. 1. 2011 12:24:08
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601423
romank
verified
rating uzivatele
(2 hodnocení)
20. 1. 2011 13:33:26
Tak asi nějaká chyba v posledním foreach, právě u toho vrstvení
foreach( $c->subCategories->category as $subcategory ) {
20. 1. 2011 13:33:26
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601422
Michal Haltuf
verified
rating uzivatele
(4 hodnocení)
20. 1. 2011 13:42:13
Říkám, že je potřeba přidat tam podmínku [akorát tedy ne if( is_array ), to jsem napsal blbě)
uprav to na:
Chybu to hází proto, že některé subCategory jsou prázdné, foreach pak vždycky řve, když nemá co procházet :o)
20. 1. 2011 13:42:13
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601421
romank
verified
rating uzivatele
(2 hodnocení)
20. 1. 2011 13:47:36
ja prave daval array a byl problém :-) Teď mi to funguje perfektně :-) Velice moooooooooooooooooooc ti děkuji, jdu nastudovat co znamená v podmínce instanceof Traversable :-) ať jsem zase o něco chytřejší. Máš to u mě, sice nevím jak bych ti to vynahradil, ale toto je přesně to co jsem potřeboval a taky jsem zjistil, že přes simple je to jednodušší než přes DOM :-) Ještě jednou ti mocrkát děkuju
20. 1. 2011 13:47:36
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601420
Tak uz je to vyriesene? :)
Ale tu podmienku by som poistil, lebo $c->subCategories->category nemusi byt striktne objektoveho typu.
20. 1. 2011 14:09:04
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601419
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
22. 1. 2011 18:47:31
Piece of cake ;)
$src = <<
1
Budovy
1
true
15
Plastikove
1
true
16
Papírové
papírové
2
true
17
plastikové
plastikové
3
true
2
Dalsi kategorie
2
true
3
Zase dalsi kategorie
3
true
4
Doplňky
4
true
5
Krajiny
5
true
6
Dalsi a dalsi
6
true
7
Krajiny kategorie 2
7
true
POHODA;
$dom = new DOMDocument ();
$dom -> loadXML ( $src );
$xml = simplexml_import_dom ( $dom );
?>
xpath ( "//ctg:category" ) as $cat ): ?>
xpath ( "*" ) as $attr ): ?>
Attribute name Value
xpath ( "ctg:name" ) ) ?>
getName () ?>
priste prosim zformatovat kod a cist moje vlakna: http://webtrh.cz/96113-faq-datamining-mod-rewrite
22. 1. 2011 18:47:31
https://webtrh.cz/diskuse/parsovani-vnorenych-zaznamu-v-xml/#reply601418
Pro odpověď se přihlašte.
Přihlásit