Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP]Import z xml
zundap
post 12.03.2019, 12:27:31
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. }







Ten post edytował zundap 12.03.2019, 12:28:15
Go to the top of the page
+Quote Post
freemp3
post 12.03.2019, 12:49:10
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


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
zundap
post 12.03.2019, 14:45:47
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 12.03.2019, 19:56:53
Post #4





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

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


Czy ja widzę plik SEPA ? biggrin.gif
Go to the top of the page
+Quote Post
zundap
post 13.03.2019, 08:06:04
Post #5





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

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


Tak smile.gif
Go to the top of the page
+Quote Post
freemp3
post 13.03.2019, 11:25:34
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.


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
zundap
post 13.03.2019, 14:02:47
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 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 13.03.2019, 14:18:08
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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 13.03.2019, 15:00:28
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 13.03.2019, 15:23:18
Post #10





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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 13.03.2019, 15:50:34
Post #11





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

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


ładnie wyświetla ceny 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 13.03.2019, 19:46:25
Post #12





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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 14.03.2019, 14:22:24
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 14.03.2019, 15:40:56
Post #14





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
viking
post 14.03.2019, 16:31:52
Post #15





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
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 18.03.2019, 12:35:11
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 smile.gif
zamykamy temat
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 01:37