Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: OFX parsowanie - niezamknięte znaczniki
Forum PHP.pl > Forum > XML, AJAX > XML
krisX
Witam
Dostaję dane z banku w formacie OFX,
szczerze pobiem że z xmla jest troszkę zielony,
Dane w pliku są w następującej postaci:

  1. <STMTTRN>
  2. <TRNTYPE>CREDIT
  3. <DTPOSTED>20060126000001
  4. <TRNAMT>59,00
  5. <FITID>232232232323233223
  6. <PAYEEID>2332332
  7. <NAME>Krzysztof Marzzec
  8. <BANKACCTTO>
  9. <BANKID>21212112
  10. <ACCTID>2323232323
  11. <ACCTTYPE>CHECKING
  12. </BANKACCTTO>
  13. <MEMO>ABONAMENT ZA INTERNET ZA STYCZEN
  14. </STMTTRN>
  15. <STMTTRN>
  16. <TRNTYPE>CREDIT
  17. <DTPOSTED>20060126000001
  18. <TRNAMT>85,00
  19. <FITID>13132313123123
  20. <PAYEEID>1231323312
  21. <NAME>PIOTR CZARNECKI
  22. <BANKACCTTO>
  23. <BANKID>231123
  24. <ACCTID>2342424242
  25. <ACCTTYPE>CHECKING
  26. </BANKACCTTO>
  27. <MEMO>ABONAMENT ZA STYCZEŃ
  28. </STMTTRN>


Pytanie moje jest następujące, jako przeparsować,
żeby dostać jakąś tablicę,
probowałem simplexml lub gotowymi klasami ale niestety się wywalają,
wydaje mi się że dlatego że znaczniki są niepozamykane,
ale pewności niemam,

Bardzo proszę o poradę.
dr_bonzo
To nie jest XML ("znaczniki są niepozamykane") wiec wszysztkie parsery odpadaja

OFX jest napisane w XML ( http://www.ofx.net/ofx/de_spec.asp ), wiec nie wiem kto taki kod wyczarowal.

Jedyny parser jaki znalazlem jest w C: http://libofx.sourceforge.net/accueil.shtml
krisX
kuurde to lipa straszna,
takie dane dostaje z ing,
programik pod windowsa czyta to normalnie - acemoney

gdyby ktoś miał pomysł jak to ogarnąć to proszę o sugestię.

Dziękuję pozdrawiam
dr_bonzo
Moglbys uzyc wyrazen regularnych do wyciagniecia dancyh, lub uzupelnic zamykajace tagi, tyle ze trzeba by zajrzec do specyfikacji i poznac strukture OFXa, [1]chociarz ogladajac ten kod daje sie zauwazyc, ze wszystkie wystapienia
<tag>wartosc
w rzeczywistosci powinno byc
<tag>wartosc</tag>

bo w innych przypadkach [2]:
<tag><innyTag>wartosc...</tag> (gdy wewn tagu sa inne tagi, ale nie ma bezposrednio w nim zadnej wartosci)
tag zostaje domkniety

([ code ] -- dla zachowania tabulacji)
Kod
<STMTTRN>
    <TRNTYPE>CREDIT
    <DTPOSTED>20060126000001
    <TRNAMT>59,00
    <FITID>232232232323233223
    <PAYEEID>2332332
    <NAME>Krzysztof Krawczyk
    <BANKACCTTO>                       // [2]
        <BANKID>21212112              // otwarty [1]
        <ACCTID>2323232323
        <ACCTTYPE>CHECKING
    </BANKACCTTO>                     // zamkniety [2]
    <MEMO>ABONAMENT ZA INTERNET ZA STYCZEN
</STMTTRN>
...


Wiec powinno wystarczyc dodanie </tag> we wszystkich liniach typu
<tag>wartosc -- jakim regexpem to nie wiem smile.gif
Sabistik
Taka wolna mysl:
TIDY by tu nie pomoglo ?
krisX
tak zrobiłem,
tzn wyr. reg.

Dzięki za wszelkie sugestie.
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.