Mam mały problemz parsowaniem xmla za pomoca minidom xml. potrzebuje wgrać cały TERC.xml do bazy, próbowałem googlowac ale pÓÓÓÓki co nic nie moge znaleźć.
XML dla tych co nie wiedzią wygląda tak:
<?xml version="1.0" encoding="UTF-8"?>
<teryt>
<catalog name="TERC" type="all" date="2008-01-01">
<row>
<col name="WOJ">02</col>
<col name="POW"/>
<col name="GMI"/>
<col name="RODZ"/>
<col name="NAZWA">WOJ. DOLNOŚLĄSKIE</col>
<col name="NAZDOD"/>
<col name="STAN_NA">2008-01-01</col>
</row>
<row>
<col name="WOJ">02</col>
<col name="POW">01</col>
<col name="GMI"/>
<col name="RODZ"/>
<col name="NAZWA">Powiat bolesławiecki</col>
<col name="NAZDOD"/>
<col name="STAN_NA">2008-01-01</col>
</row>
.....
</catalog>
</teryt>
obecnie na bazgrałem mnie-więcej tyle:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from xml.dom.minidom import parse
import xml.dom.minidom
import string
def __main__():
#funkcja glowna
terytWM = 'WMRODZ.xml'
terytTERC = 'TERC.xml'
terytSIMC = 'SIMC.xml'
baza = {'adres' : 'localhost', 'user' : 'root', 'haslo':'', 'nazwa':'teryt'}
terc(terytTERC)
#end __main__
def terc(plik):
xmldoc = parse(plik)
teryt=xmldoc.getElementsByTagName("teryt")[0]
catalog=teryt.getElementsByTagName("catalog")[0]
for row in catalog.getElementsByTagName("row"):
for col in row.getElementsByTagName("col"):
print col.toxml()
#print col.data
#end terc
if __name__ == '__main__':
__main__()
Cały urok problemu to to że nie moge się dobrać do wartości pól col. O ile uzyskanie atrybutu name jest proste to juz pobranie zawartości z col graniczy z cudem. Najchętnie zabrałbym się za parsowanie xmla regexpami, ale to raczej nie będzie ciekawe rozwiązanie. SAX'a ruszać nie chce, tak jak i pełnego dom.
Rozwiązałem sprawe korzystająć z ElementTree.