PHP noob tutaj. Wydaje mi się, że nie rozumiem, jak uzyskać wartość węzła XML za pomocą XPath i nie udało mi się znaleźć odpowiedzi StackOverflow, która całkiem odpowiada na to, co robię źle.
Tak więc, używając API RPG Geek, staram się uzyskać pewne informacje o grze Strach. (Oto link do URI.)
$rpggeekXML = simplexml_load_file("https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1");
$rating = $rpggeekXML->xpath("ratings/average");
$usersrated = $rpggeekXML->xpath("ratings/usersrated");
Wiem, że z powodzeniem wciągam XML rpggeek, bo jeśli to zrobię var_dump($rpggeekXML);
, Widzę wszystkie informacje, których oczekuję. Jeśli jednak to zrobię var_dump($rating);
lub var_dump($usersrated);
, zwraca array(0) { }
. Wygląda na to, że muszę spieprzyć wiersze XPath, ale nie wiem, jak to zrobić.
Odpowiedzi:
2 dla odpowiedzi № 1Użyj pełnej ścieżki, aby znaleźć żądany węzeł:
$rating = $rpggeekXML->xpath( "boardgame/statistics/ratings/average" );
echo $rating[0];
Zebrać wszystkie "average"
węzły w dokumencie:
$rating = $rpggeekXML->xpath( "//average" );
echo $rating[0];
0 dla odpowiedzi nr 2
Myślę, że składnia xpath jest błędna. Możesz spróbować tego
$rpggeekXML = simplexml_load_file("https://www.rpggeek.com/xmlapi/boardgame/166952?&stats=1");
$rating = $rpggeekXML->xpath("//ratings/average");
$usersrated = $rpggeekXML->xpath("//ratings/usersrated");