• 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 :/

Konkurs Mistrz Programowania
+1 głos
275 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

+1 głos
2 odpowiedzi 724 wizyt
0 głosów
1 odpowiedź 272 wizyt
pytanie zadane 7 września 2020 w JavaScript przez Karol Loczeski Użytkownik (820 p.)
0 głosów
0 odpowiedzi 196 wizyt
pytanie zadane 4 lutego 2020 w C i C++ przez Aleksandra2003 Nowicjusz (120 p.)

93,653 zapytań

142,574 odpowiedzi

323,090 komentarzy

63,170 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

Kursy INF.02 i INF.03
...