Autor Zpráva
Lukassy
Profil *
Zdravim

Mam tento XML soubor a potreboval bych ho zpracovat v PHP:

<?xml version="1.0" encoding="UTF-8" ?> 
<prvky>
  <prvek id="45">
    <bod id="03.">
      <![CDATA[ <h3 class="nazev">03.&nbsp;Pojmenování (název) životní situace</h3> <div class="popis"> Vydání občanského průkazu</div>]]> 
    </bod>
  </prvek>
</prvky>


Pouzil jsem zde na diskuzi vymyslene reseni, ale nevypisuje to tak jak ma. A to je nadpis "03. Pojmenování (název) životní situace" a pod tim "Vydání občanského průkazu"

Zde je ten kod:

<?php
$soubor = 'xml.xml';
$heading = Array();
$para = Array();
$lastOpened = '';

function startTag($parser, $name, $attribs) 
{
  global $lastOpened;
  $lastOpened = $name;
}

function endTag($parser, $name) 
{
}

function characterData($parser, $data)
{
  global $lastOpened,$prvky,$prvek,$bod;
  if (strlen(trim($data)))
{

switch ($lastOpened) 
{
  case 'prvky':
  $prvky[] = $data;
  break;
  
  case 'prvek':
  $prvek[] = $data;
  echo $prvek[0];
  break;
  
  default:
  // nezájem
  break;
}
}
}
// 1. vytvořim parser
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,false);

// 2. zaregistruju handlery
xml_set_element_handler($parser,'startTag', 'endTag');
xml_set_character_data_handler($parser,'characterData');

// 3. parsuju
xml_parse($parser, file_get_contents($soubor), true);
xml_parser_free($parser);

print_r($prvek);
foreach($prvky as $value)
echo "<h2>".$value."</h2>";

foreach($prvek as $value)
echo "<p>".$value."</p>";

?> 


Byl bych Vam moc vdecny za pomoc. Diky
Joker
Profil
Lukassy:
nevypisuje to tak jak ma
Vyčerpávající popis problému.
A co to teda vypíše?
Lukassy
Profil *
Chybove hlasky:
Warning: Invalid argument supplied for foreach() in C:\dev\www\xml2\zpracuj_xml.php on line 53

Warning: Invalid argument supplied for foreach() in C:\dev\www\xml2\zpracuj_xml.php on line 56


A neslo by to udelat nejak jednoduseji viz podobny dotaz Odkaz?
Lukassy
Profil *
Potreboval bych vycucavat informace z XML dokumentu, ktery ma strukturu jakou jsem napsal v prvnim prispevku. Ten XML dokument bude na webu a prubezne se bude aktualizovat a ja bych potreboval tyto informace ukladat do databaze a pote zobrazovat. Do databaze to jiz ulozim, ale mam problem dostat tyto udaje z XML do promennych v php.
Lukassy
Profil *
Slo by to takto jednoduse?

<?php 
  $xml=simplexml_load_file('xml.xml');
  foreach($xml->prvek->bod as $bod){
        echo $bod;
}
?>
Radek9
Profil
Lukassy:
Co ti brání to vyzkoušet?
Lukassy
Profil *
Tak vyzkouseno to mam, ale zarazi me kratkost tohoto kodu oproti tomu vyse, pritom podle me dela totez.
Loric
Profil
proto je to simplexml :D
Lukassy
Profil *
Jeste bych se zeptal na toto. jak z naparsovaneho xml dokumentu, ve kterem je odkaz ve tvaru /ostatni/kod=00676 udelam klasicky odkaz? Potreboval bych k nemu pridat zacatek http://www....., aby to pak spravne odkazovalo. Diky

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: