Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przestrzenie nazw SimpleXML
Forum PHP.pl > Forum > PHP
macko90
Jako że jestem tutaj nowy, pragnę się przywitać wink.gif

Mam problem z przestrzeniami nazw w XML, mam taki pliczek

  1. <pasaz:Envelope xmlns:pasaz="http://schemas.xmlsoap.org/soap/envelope/">
  2. <pasaz:Body>
  3. <loadOffers xmlns="urn:ExportB2B">
  4. <offers>
  5. <offer>
  6. <kod>cos tam</kod>


Nie mam pojęcia jak dobrać się do "cos tam"

  1. <?php
  2.  
  3. $xml = simplexml_load_file('plik.xml');
  4.  
  5. foreach ($xml->Envelope->Body->loadOffers->offers->offer as $hs)
  6. {
  7.  
  8. echo $hs->kod;
  9.  
  10. }
  11.  
  12. ?>


Co robię źle?
Noidea
Temat: parsowanie simpleXML
macko90
Hmm, dalej nie umiem sobie poradzić, kolega ma tam trochę inny przykład

jakbym miał coś takiego

  1. <pasaz:a>cos tam</pasaz:a>
  2. <pasaz:b>cos tam</pasaz:b>
  3. <pasaz:c>cos tam</pasaz:c>


to nie byłoby problemu, ale nie mogę poradzić sobie z czymś takim

  1. <pasaz:b>
  2. <a>cos tam</a>
  3. <b>cos tam2</b>
  4. <c>cos tam3</c>
  5. </pasaz:b>
Noidea
  1. <?php
  2.  
  3. $xmlStr = '<root xmlns:pasaz="http://jakis.adres.url">
  4. <pasaz:bar/>
  5.  
  6. <pasaz:b>
  7. <a>cos tam</a>
  8. <b>cos tam2</b>
  9. <c>cos tam3</c>
  10. </pasaz:b>
  11.  
  12. <foo/>
  13. </root>';
  14.  
  15. $xml = simplexml_load_string( $xmlStr );
  16. $b = $xml->children( "http://jakis.adres.url" )->b->children();
  17. var_dump( $b );
  18.  
  19. echo "Lub przy użyciu XPath:<br>";
  20.  
  21. $xml->registerXPathNamespace( "pasaz", "http://jakis.adres.url" );
  22. $b = $xml->xpath( "//pasaz:b" );
  23. var_dump( $b[0] );
  24.  
  25. ?>
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.