Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP]Pobieranie zawartości strony i zapisywanie jako xml
Maze123987
post 7.09.2015, 17:18:53
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Witam,

Chciałbym zapisać dane z kodu źródłowego pewnej strony do pliku xml. Działanie to miałoby się odbywać w pętli na określonych id strony.

Załóżmy, że adres strony to http://nazwa/temat.php?id=X
jej kod źródłowy wygląda następująco:



  1. ...
  2. <title> Tytuł</title>
  3. <link rel="stylesheet" type="text/css" href="styl.css" />
  4. </head>
  5. <div class="body">
  6. <div id="header" >
  7. ...
  8. </div>
  9. </div>
  10. <div class="body2">
  11. <div id="pagetitle">
  12. <h1><a href="adres">Tytuł</a></h1>
  13. </div>
  14. <ul>
  15. <li id="1">
  16. <div class="header">
  17. <div class="date">DATE</div>
  18. <span class="username">USERNAME</span>
  19. </div>
  20. <div class="title">Tytuł</div>
  21. <div class="tresc">
  22. <blockquote><b><u>Tytuł</u></b><br />
  23. TREŚĆ
  24. </div>
  25. </li>
  26. <li id="2">
  27. <div class="header">
  28. <div class="date">DATE</div>
  29. <span class="username">USERNAME</span>
  30. </div>
  31. <div class="tresc">
  32. TREŚĆ
  33. </div>
  34. </body>
  35. </html>


Chciałbym pobrać zawartość w taki sposób:
  1. <strona>
  2. <tytul>"title"</tytul>
  3. <tresc>"tresc" (gdzie li id="1")</tresc>
  4. <username>"username"</username>
  5. <date>"date"</date>
  6. </strona>


Ma ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
thek
post 7.09.2015, 21:47:11
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




xpath?


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Geniesis
post 8.09.2015, 13:50:31
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 4.12.2013
Skąd: Śląsk

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


Jeżeli strony nie zmieniają swojego szablonu to możesz użyć wyrażeń regularnych.
Mniej więcej wyglądało by to tak (schemat):
1. Otwierasz stronę (file_get_contents) i zapisujesz zawartość do zmiennej
2. Używasz odpowiednich wyrażeń regularnych w stylu:
  1. if(preg_match('/<title>(.*?)<\/title>/', $webCode, $aTitle)){
  2. } else {
  3. //tutaj wyjątek lub kolejna reguła jeżeli wszystkie strony nie są identyczne
  4. }
  5. ...
  6. $aDataToXML = array(
  7. 'title' => $aTitle[1],
  8. ...
  9. );


3. Tworzysz szablon do którego dane zmienne mają być wrzucone np.
  1. $xmlData = '
  2. <tytul> ' . $aDataToXML['title] . ' </tytul>\n
  3. ...
  4. ';

4.Tworzysz plik do którego będzie zapisany wygenerowany kod
5.Zapisujesz do pliku (file_put_contents )


Jeżeli wszystko ubierzesz odpowiednio w funkcje to bez problemu dynamicznie powinno działać.

Ten post edytował Geniesis 8.09.2015, 13:51:00
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: 19.04.2024 - 13:42