Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [xml] xpath
Forum PHP.pl > Forum > XML, AJAX > XML
grzegorz_g
próbuje zastosować xpath do moje pliku xml:

  1.  
  2. <all>
  3. <RO>
  4. <Sport>Tennis</Sport>
  5. <EventID>425342</EventID>
  6. </RO>
  7. <RO>
  8. <Sport>Soccer</Sport>
  9. <EventID>425341</EventID>
  10. </RO>
  11. <RO>
  12. <Sport>Soccer</Sport>
  13. <EventID>425348</EventID>
  14. </RO><RO>
  15. <Sport>Tennis</Sport>
  16. <EventID>425347</EventID>
  17. </RO><RO>
  18. <Sport>Soccer</Sport>
  19. <EventID>425349</EventID>
  20. </RO>
  21. </all>



potrafię wyciągnac za pomocą xpath tylko elementy <RO> gdzie <Sport>="Soccer" ale nie wiem jak pobrać dla tych odszukanych elementów ten drugi element <EventID>.

teraz mam takie coś:

  1.  
  2. $doc = new DOMDocument;
  3. $doc->preserveWhiteSpace = false;
  4. $doc->Load('plik_z_danymi.xml');
  5. $xpath = new DOMXPath($doc);
  6.  
  7.  
  8. $query = '//RO/Sport[. = "Soccer"]';
  9.  
  10.  
  11. $entries = $xpath->query($query);
  12. foreach ($entries as $entry) {
  13.  
  14. echo $entry->nodeValue."<br />";
  15.  
  16. }
  17.  



teraz dostaje listę : Soccer, Soccer, Soccer a zależy mi na liście tych <EventID>


thek
Musisz zapytanie nieco zmienić...
//RO[Sport = Soccer]/EventID
Co można czytać jako... Wszystkie elementy <EventID> które są dzieckiem elementu <RO>, a który dodatkowo zawiera przynajmniej jeden element <Sport> o wartości Soccer.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.