mam mały problem z xmlem, odrazu zaznaczam iz niestety w xml nie jest moją mocną stroną (jeszcze) oraz naprawdę przeszukałem sporo stron, tutorialów i tematów na tym forum jednak nigdzie nie umiałem powiązać informacji z jedną całość, jak ktoś potrafi mi pomóc bardzo bym prosił o precyzyjne opisanie rozwiązania dokładnie krok po kroku wtedy może w końcu to zrozumiem
otóz mam taki oto kod:
plik xml.php
<?php function Parserowanie($file) { ini_xml(); $rXMLPARSER = xml_parser_create(); xml_parser_set_option($rXMLPARSER, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($rXMLPARSER, 'start_element', 'close_element'); xml_set_character_data_handler($rXMLPARSER,'character_data'); } } $aRet['wyniki'] = $GLOBALS['aXmlTotalElements']; return $aRet; } function start_element($parser, $name, $attrs='') { $GLOBALS['sXmlactualElement'] = $name; $GLOBALS['xmlElementCpt']++; } elseif($name == 'DOCUMENT') { $GLOBALS['aXmlAttrs'] = $attrs; } } function close_element($parser, $name, $attrs='') { if($name == 'ziel' && $GLOBALS['sXmlactualElement'] != 'file'){ $GLOBALS['xmlElementCpt']++; } } function character_data($parser, $data='') { if($GLOBALS['sXmlactualElement'] != 'ziel' && $GLOBALS['sXmlactualElement'] != 'DOCUMENT' $GLOBALS['aXmlTotalElements'][$GLOBALS['xmlElementCpt']][$GLOBALS['sXmlactualElement']].= trim($data); } elseif($GLOBALS['sXmlactualElement'] == 'DOCUMENT') { $GLOBALS['xmlInfos'] = $GLOBALS['aXmlAttrs']; } else { if($GLOBALS['sXmlactualElement'] != 'ziel') { } } } function ini_xml() { $GLOBALS['sXmlactualElement'] = ''; $GLOBALS['xmlElementCpt'] = 0; } ?>
pobieram plik za pomoca funkcji require_once na stronę w której chce generować dane i tam mam następująco (to jest przykłąd testowy):
<?php $dLink= "ścieżka_do_linku"; $dArray = Parserowanie($dLink); $dRes = $dArray['wyniki']; $dResw = $dArray['infos']; foreach ($dRes as $zapRess) { } ?>
plik xml wygląda następująco (wartości podałem testowe):
<DOCUMENT> <PAGE>page</PAGE> <ANGEBOTE>angebote</ANGEBOTE> <ZIEL> <NAME>jakas nazwa</NAME> <TYP>typ</TYP> <REF>ref</REF> <ANGEBOTE>angebote</ANGEBOTE> <PREIS>preis</PREIS> </ZIEL> <ZIEL> <NAME>jakas nazwa</NAME> <TYP>typ</TYP> <REF>ref</REF> <ANGEBOTE>angebote</ANGEBOTE> <PREIS>preis</PREIS> </ZIEL> <ZIEL> <NAME>jakas nazwa</NAME> <TYP>typ</TYP> <REF>ref</REF> <ANGEBOTE>angebote</ANGEBOTE> <PREIS>preis</PREIS> </ZIEL> </DOCUMENT>
problem jest następujący jak mogę wywołać w pętli elementy zawarte w tagu "ZIEL" i osobno wywołać bez pętli tagi page i angebote(główny tag)
obecnie generuje mi wyniki w taki sposób że główne-angebote jest automatycznie doklejane do pierwszego wyniku z angebote zawartego w tagu ZIEL: oraz nie wiem jak mam wywołać osobno wartość page i wartość angebote(główny)
bardzo proszę o pomoc co robie źle, lub czego brakuje, oraz jak ew zrobić to poprawnie (krok po kroku)
z góry serdecznie dzięki
kowalcook