Mam taki kłopot: tworzę sobie plik xml, w którym są informacje o nowej wersji programu- wygląda to mniej więcej tak:
  1. <?xml version="1.0" encoding="iso-8859-2"?>
  2. <xml>
  3. <opis>
  4. <lang>Polski</lang>
  5. <wersja>1.0.666</wersja>
  6. <status>Łatka Krytyczna</status>
  7. <zmiany>Opis najwazniejszych zmian</zmiany>
  8. </opis>
  9. <opis>
  10. <lang>English</lang>
  11. <wersja>1.0.666</wersja>
  12. <status>Critical</status>
  13. <zmiany>Changes</zmiany>
  14. </opis>
  15. </xml>

To taka uproszczona wersja, bo będzie tam tych danych ciut więcej, jednak tyle wystarczy w zupełności do przedstawienia mojego problemu. Otóż przeczytałem dość przyjemny artykuł i mój parser wygląda dokładnie jak w pierwszym opisie czyli
  1. <?php
  2. //Tutaj dodaje jeszcze zmienną $lang='Polski';
  3.  function tag_start($parser, $attr, $params){ // 1
  4. echo 'Znaleziono nowy tag: '.$attr.' z parametrami ';
  5. print_r($params);
  6. echo '<br>';
  7.  }
  8.  
  9.  function tag_end($parser, $attr){ // 2
  10. echo 'Koniec tagu '.$attr.'<br>';
  11.  }
  12.  
  13.  $parser = xml_parser_create(); // 3
  14.  
  15.  xml_set_element_handler($parser, 'tag_start', 'tag_end'); // 4
  16.  
  17.  if(!($fp = fopen($_GET['file'], "r"))) { // 5
  18. die("Nie można otworzyć podanego pliku XML!!!");
  19.  }
  20.  
  21.  while($data = fread($fp, 4096)) {
  22. if(!xml_parse($parser, $data, feof($fp))){ // 6
  23.  die(sprintf("Błąd XML: %s w linii %d",
  24.  xml_error_string(xml_get_error_code($_parser)),
  25.  xml_get_current_line_number($parser)));
  26.  }
  27. }
  28.  xml_parser_free($parser); // 7
  29.  
  30. ?>

jak zrobić, aby parser pobierał tylko informacje z <lang>$lang</lang> ? tak się zastanawiam, i chyba łatwiej będzie zrobić gdy będzie taka konstrukcja: <opis lang='Polski'>, co mi nie robi różnicy, a chyba będzie prostsze do implementacji w parserze. Mógłby mnie ktoś naprowadzić jak się do tego zabrać?
I drugie pytanko, w jaki sposób uzyskać
Cytat
tag foo ma wartość bar
(w tej chwili mam tag foo ma wartość Array([Coś]=>Bar))

przepraszam za dubla, ale czy naprawde nikt nie jest w stanie mi pomóc? to dla mnie dość ważne....