Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP]Import z xml
zundap
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


Witam chcę zaimportować zawartość pliku xml płatności masowe kombinuję ale nie mogę wyciągnąć interesujących mnie wartości

  1.  
  2. $xml = simplexml_load_file('plik.xml');
  3. $licz = count($xml->Rpt->Ntry);
  4. for($i=0;$i<$licz;$i++) {
  5. $attr = $xml->Rpt->Ntry[$i]->attributes();
  6. $kwota[$i] = $attr['Amt'];
  7. echo $kwota[$i];
  8. }



(IMG:http://infoo.net/1/2.gif)

(IMG:http://infoo.net/1/1.gif)

Ten post edytował zundap 12.03.2019, 12:28:15
Go to the top of the page
+Quote Post
freemp3
post
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Metoda attributes zwraca listę atrybutów danego węzła, a nie jego elementy podrzędne. Jeśli chcesz wyciągnąć wartość węzła Amt, to wystarczy się do niego odwołać tak jak do węzłów nadrzędnych, czyli:
  1. $xml->Rpt->Ntry[$i]->Amt
Go to the top of the page
+Quote Post
zundap
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


Hmm coś nadal robię źle bo w wynikach pusto

  1.  
  2. $xml = simplexml_load_file('plik.xml');
  3. $licz = count($xml->Rpt->Ntry);
  4. for($i=0;$i<$licz;$i++) {
  5. $attr = $xml->Rpt->Ntry[$i]->Amt->attributes();
  6. $kwota[$i] = $attr['Amt'];
  7. echo $kwota[$i];
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Czy ja widzę plik SEPA ? (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
zundap
post
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


Tak (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
freemp3
post
Post #6





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Jest pusto ponieważ węzeł Amt nie posiada atrybutów więc zwraca pustą listę. Ciebie interesuje wartość więc użycie metody attributes jest niepotrzebne.
Go to the top of the page
+Quote Post
zundap
post
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


Hmm nie bardzo wiem co ty do mnie mówisz (IMG:style_emoticons/default/smile.gif)
tak mi też nie działa
  1.  
  2. $xml = simplexml_load_file('plik.xml');
  3. $licz = count($xml->Rpt->Ntry);
  4. for($i=0;$i<$licz;$i++) {
  5. $attr = $xml->Rpt->Ntry[$i]->Amt ;
  6. $kwota[$i] = $attr['Amt'];
  7. echo $kwota[$i];
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Możesz wrzucić kawałek tego xmla na jakieś środowisko php online? Będzie łatwiej ci pokazać.
Go to the top of the page
+Quote Post
zundap
post
Post #9





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


Poniżej link do pliku

http://infoo.net/1/plik.xml

Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


  1. $xml = simplexml_load_file('plik.xml');
  2.  
  3. $x = $xml->xpath('//BkToCstmrAcctRpt/Rpt/Ntry/Amt');
  4. foreach ($x as $item) {
  5. echo $item, '<br>';
  6. }


Ten post edytował viking 13.03.2019, 15:23:33
Go to the top of the page
+Quote Post
zundap
post
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


ładnie wyświetla ceny (IMG:style_emoticons/default/smile.gif) dzięki ale jak jeszcze zrobić żeby oprócz cen wyświetliło inne np tytuł przelewu " Ustrd "

bo na podstawie tego kodu nie przychodzi mi nic do głowy
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nie ma żadnego znaczenia czy po twojemu czy mojemu.

  1. $xml = simplexml_load_file('plik.xml');
  2.  
  3. // 1
  4. foreach ($xml->BkToCstmrAcctRpt->Rpt->Ntry as $item) {
  5. echo $item->Amt, '|';
  6. echo $item->NtryDtls->TxDtls->RmtInf->Ustrd, "\r\n";
  7. }
  8.  
  9. // 2
  10. $x = $xml->xpath('//BkToCstmrAcctRpt/Rpt/Ntry');
  11.  
  12. foreach ($x as $item) {
  13. echo $item->Amt, '|';
  14. echo $item->NtryDtls->TxDtls->RmtInf->Ustrd, "\r\n";
  15. }
Go to the top of the page
+Quote Post
zundap
post
Post #13





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


viking Wielkie dzięki wszystko jasne , pięknie działa
Ostania rzecz mi tylko została

Zabezpieczenie żeby do bazy kilkukrotnie nie wszedł ten sam przelew , przy kilkukrotnym imporcie , każdy przelew ma swój unikalny pm_id_platnosci


ja do bazy wsadzam tak

  1.  
  2. $pm_id_platnosci = $item->NtryDtls->TxDtls->Refs->EndToEndId ;
  3.  
  4. $masowe_wsad = "INSERT INTO platnosci_masowe (pm_kwota, pm_id_platnoscy) values ('$pm_kwota', '$pm_id_platnosci')";
  5.  
  6. if (!mysql_query ($masowe_wsad, $link) )
  7. {
  8. }


co dodać w tym INSERT

Ten post edytował zundap 14.03.2019, 14:23:23
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro pm_id_platnosci jest UNIKALNE to ustaw w bazie na to pole klucz UNIQUE i juz, baza sama bedzie pilnowac tego
Go to the top of the page
+Quote Post
viking
post
Post #15





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


mysql_query - rozszerzenie mysql już bardzo dawno temu zostało usunięte z php.
Go to the top of the page
+Quote Post
zundap
post
Post #16





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

Ostrzeżenie: (0%)
-----


dziękuję wam za pomoc , wszystko działa jak należny (IMG:style_emoticons/default/smile.gif)
zamykamy temat
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:58