• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dom i xpath, parsowanie html. Problem :/

Object Storage Arubacloud
+1 głos
196 wizyt
pytanie zadane 14 maja 2017 w PHP przez Kamil Pixel Niedbals Użytkownik (650 p.)

Witajcie, chciałbym wyciągnąć z oferii odpowiednio tytuł i opis. Będę wdzięczny za pomoc w rozwiązaniu problemu. :)

 

<?php
$dom = new DOMDocument();

$oferta = "http://oferia.pl/zlecenie/item1598334-projekt-gry-2d-studia";
$dom->loadHTML(file_get_contents($oferta));

$xpath = new DomXPath($dom);

$tytul = $xpath ->query("//h1[contains(@class, 'cardOrderName')]");
$opis = $xpath ->query("//div[contains(@id, 'user_field')]");

echo $wyniki = array(
    "tytul" => $tytul,
    "opis" => $opis

);

echo $dom->saveHTML(); // ????
?>

 

komentarz 14 maja 2017 przez Kamil Pixel Niedbals Użytkownik (650 p.)
Czy może mi ktoś odpowiedzieć? Chciałbym już móc działać. :)

1 odpowiedź

0 głosów
odpowiedź 14 maja 2017 przez darek_kce Gaduła (3,180 p.)
wybrane 14 maja 2017 przez Kamil Pixel Niedbals
 
Najlepsza

Metoda query zwraca listę typu DOMNodeList, więc trzeba się dostać do 1 znalezionego elementu, a dopiero potem z tego elementu wyciągnąć wartość. Można to zrobić tak:

$dom = new DOMDocument();
 
$oferta = "http://oferia.pl/zlecenie/item1598334-projekt-gry-2d-studia";
$dom->loadHTML(file_get_contents($oferta));
 
$xpath = new DomXPath($dom);
 
$tytul = $xpath->query("//h1[contains(@class, 'cardOrderName')]");
$opis = $xpath->query("//div[contains(@id, 'user_field')]");
 
$wyniki = array(
    "tytul" => $tytul->item(0)->nodeValue,
    "opis" => $opis->item(0)->nodeValue
 
);

var_dump($wyniki);
?>

A no i jeszcze jedno, dlaczego do wyświetlenia tablicy używasz echo? Do tego służy var_dump(), albo print_r()

Podobne pytania

0 głosów
1 odpowiedź 102 wizyt
pytanie zadane 7 września 2020 w JavaScript przez Karol Loczeski Użytkownik (820 p.)
0 głosów
0 odpowiedzi 107 wizyt
pytanie zadane 4 lutego 2020 w C i C++ przez Aleksandra2003 Nowicjusz (120 p.)
+1 głos
1 odpowiedź 196 wizyt
pytanie zadane 20 stycznia 2020 w Python przez Bartekmwt1000 Nowicjusz (150 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...