Mam problem z pobraniem danych z XML, a następnie wyświetlenie ich w PHP w petli foreach.
Przy strukturze xml bez namespace bez problemu mogę te dane wyświetlić poprzez pętlę.
Przykładowy plik xml:
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?> <?xml-stylesheet href='http://alerts.weather.gov/cap/capatom.xsl' type='text/xsl'?> <text xmlns='http://schemas.datacontract.org/2004/07/BazeField.Historian.DataServices' xmlns:d4p1='http://schemas.datacontract.org/2004/07/System' > <item> <d4p1:Country>Polska</d4p1:Country> <d4p1:Region>Opolskie</d4p1:Region> <d4p1:City>Opole</d4p1:City> <d4p1:Registeredaddress> <d4p1:ApartmentNumber>1</d4p1:ApartmentNumber> <d4p1:HouseNumber>20</d4p1:HouseNumber> <d4p1:Street>Zmyślona</d4p1:Street> </d4p1:Registeredaddress> </item> <item> <d4p1:Country>Polska</d4p1:Country> <d4p1:Region>Mazowieckie</d4p1:Region> <d4p1:City>Warszawa</d4p1:City> <d4p1:Registeredaddress> <d4p1:ApartmentNumber>11</d4p1:ApartmentNumber> <d4p1:HouseNumber>14</d4p1:HouseNumber> <d4p1:Street>Pomylona</d4p1:Street> </d4p1:Registeredaddress> </item> </text>
Pojedyńcze dane oczywiście udaje mi się pobrać, problem jest z pętlą foreach.
Próbowałem już różnych zapisów, ale niestety nie działają.
Obecnie plik wygląda tak jak poniżej (oczywiście w pętli foreach są błędy)
Jak zrobić by w petli foreach zostały przetworzone wszystkie dane z xml
$capFields = $xml->item[1]->children('d4p1', true); foreach (($xml->item->children("d4p1", true)) as $cap) { }