Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pobieranie danych z xmla
gofer
post 23.04.2005, 10:23:19
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.05.2003
Skąd: wrocław

Ostrzeżenie: (0%)
-----


witam, jak pobrać dane, które są na innej stronie prezentowane w postaci xml i wyświetlić je na swojej stronie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
hwao
post 23.04.2005, 11:35:28
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Otwierasz plik i lapiesz jego zawartosc, jak sie nie da to fsockopen" title="Zobacz w manualu PHP" target="_manual()

Nastepnie wyrazenia regularne i lapiesz co Ci potrzebne, a jak calosc to jakas klasa/bibliotek do przetwarzania xml'a do tablicy/obietku i wyswietlasz jak Ci trzeba
Go to the top of the page
+Quote Post
-chipcio-
post 23.04.2005, 18:12:43
Post #3





Goście







Można utworzyć praser XML. Oto kod:

  1. <?
  2. function start($parser, $element, $atrybuty) {
  3. global $drzewo;
  4. $drzewo .= &#092;"/$element\";
  5. }
  6.  
  7. function koniec($parser, $element) {
  8. global $drzewo;
  9. $drzewo = substr($drzewo,0,strrpos($drzewo,&#092;"/\"));
  10. }
  11.  
  12. function dane($parser, $zawartosc) {
  13. global $drzewo, $elementy;
  14. $elementy[&#092;"$drzewo\"][]= $zawartosc;
  15. }
  16.  
  17. $plik = &#092;"plik.xml\";
  18. $parser = xml_parser_create();
  19. xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
  20. xml_set_element_handler($parser, &#092;"start\", \"koniec\");
  21. xml_set_character_data_handler($parser, &#092;"dane\");
  22.  
  23. if ($f = fopen($plik, &#092;"r\")) {
  24. while ($dane = fread($f, 4096)) {
  25. if (!xml_parse($parser, $dane, feof($f))) {
  26. echo sprintf(&#092;"<b>Błąd w pliku XML: %s w lini %d\",
  27. xml_error_string(xml_get_error_code($parser)),
  28. xml_get_current_line_number($parser),&#092;"</b>\");
  29. }
  30. }
  31. } else { echo &#092;"Nie można otworzyć pliku!\"; }
  32. xml_parser_free($parser);
  33.  
  34.  
  35. // wypisanie tytułu
  36. echo &#092;"<a href=\"{$elementy[\"/rss/channel/link\"][0]}\"
  37. >{$elementy[&#092;"/rss/channel/title\"][0]}</a>
  38. <br />{$elementy[&#092;"/rss/channel/description\"][0]}<br />\";
  39.  
  40. // pokazanie grafiki
  41. if ($elementy[&#092;"/rss/channel/image/width\"][0]>0) 
  42. $szerokosc=&#092;"width={$elementy[\"/rss/channel/image/width\"][0]}\";
  43. if ($elementy[&#092;"/rss/channel/image/height\"][0]>0) 
  44. $wysokosc=&#092;"height={$elementy[\"/rss/channel/image/height\"][0]}\";
  45. if ($elementy[&#092;"/rss/channel/image/link\"][0]<>\"\") {
  46. echo &#092;"<a href=\"{$elementy[\"/rss/channel/image/link\"][0]}\" 
  47. title=&#092;"{$elementy[\"/rss/channel/image/title\"][0]}\"><img 
  48. src=&#092;"{$elementy[\"/rss/channel/image/url\"][0]}\" 
  49. border=&#092;"0\" $szerokosc $wysokosc 
  50. alt=&#092;"{$elementy[\"/rss/channel/image/description\"][0]}\"></a><br />\";
  51. }
  52.  
  53. // wypisanie nagłówków
  54. for ($i=0;$i<count($elementy[&#092;"/rss/channel/item/title\"]);$i++) {
  55. echo &#092;"<p>• <a href=\"{$elementy[\"/rss/channel/item/link\"][$i]}\"
  56. >{$elementy[&#092;"/rss/channel/item/title\"][$i]}</a>\";
  57. if ($elementy[&#092;"/rss/channel/item/description\"][$i]<>\"\") 
  58. echo &#092;"<br />{$elementy[\"/rss/channel/item/description\"][$i]}\";
  59. }
  60.  
  61. ?>


w zmiennej $plik dajesz stronę z plikiem XML

---
Prosze uzywac [php] do umieszczania kodu php
hwao
Go to the top of the page
+Quote Post
tmk
post 21.07.2005, 23:38:33
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

Ostrzeżenie: (0%)
-----


w powyższym parserze jest problem z cudzysłowami. gdy pojawią się w <title></title> źle parsuje.

Ma ktoś pomysł jak to zmodyfikować?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 01:10