Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> XMLreader, problem z różnymi atrybutami, problem z parsowaniem bazy TERC
f4ll3ns3raf1n
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 27.11.2009

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


Witam.

borykam się z problemem, mianowicie próbuję dobrać się do takiego pliku XML
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <teryt>
  3. <catalog name="TERC" type="all" date="2010-01-01">
  4. <row>
  5. <col name="WOJ">02</col>
  6. <col name="POW"/>
  7. <col name="GMI"/>
  8. <col name="RODZ"/>
  9. <col name="NAZWA">DOLNOŚLĄSKIE</col>
  10. <col name="NAZDOD">województwo</col>
  11. <col name="STAN_NA">2010-01-01</col>
  12. </row>
  13. <row>
  14. <col name="WOJ">02</col>
  15. <col name="POW">01</col>
  16. <col name="GMI"/>
  17. <col name="RODZ"/>
  18. <col name="NAZWA">bolesławiecki</col>
  19. <col name="NAZDOD">powiat</col>
  20. <col name="STAN_NA">2010-01-01</col>
  21. </row>
  22. </catalog>
  23. </teryt>


Chcę poprostu zrobić tablicę asocjacyjną, zawierającą wszystkie wpisy (tabela[index][wartosc_atrybutu_name] = wartosc)
i nie mogę sobie poradzić, o ile potrafię pobrać każdą wartość atrybutu NAME, to już nie potrafię całej wartości danego NODE-a pobrać (np "bolesławiecki").
siedzę od wczoraj, pomysłów mi brak, mogłby mi ktoś nasunąc jakieś pomysły na rozwiązanie?

index.php
  1. <?php
  2.  
  3. $reader = new XMLReader();
  4. $reader->open('TERC.xml');
  5. $count = 0;
  6.  
  7. while($reader->read())
  8. {
  9. // GDY rozpoczyna się ROW
  10. if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "row")
  11. {
  12. $count++;
  13. }
  14.  
  15. // zbieranie atrybutów COL
  16. if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "col")
  17. {
  18. if($reader->hasAttributes)
  19. {
  20. $tabela[$count][$reader->getAttribute("name")] = $reader->value;
  21. }
  22. //echo "<br />";
  23. }
  24. }
  25.  
  26. print_r($tabela);
  27. ?>



a efekt działań jest taki:
  1. <pre>
  2. (
  3. [1] => Array
  4. (
  5. [WOJ] =>
  6. [POW] =>
  7. [GMI] =>
  8. [RODZ] =>
  9. [NAZWA] =>
  10. [NAZDOD] =>
  11. [STAN_NA] =>
  12. )
  13.  
  14. [2] => Array
  15. (
  16. [WOJ] =>
  17. [POW] =>
  18. [GMI] =>
  19. [RODZ] =>
  20. [NAZWA] =>
  21. [NAZDOD] =>
  22. [STAN_NA] =>
  23. )
  24.  
  25. )
  26. </pre>



w dalszym ciągu nie znalazłem rozwiązania, ktoś ma pomysły? :-/
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.09.2025 - 23:30