parser xml

Odpowiedz Nowy wątek
2016-10-05 20:32
Uzo
0

Cześć! Jestem początkującym programistą;)
Szukam rozwiązania dla mojego problemu:

chce odczytać dane z XMLa a dokładnie z GMLa,
potrafię odczytać dane z drzewa(rodzica) a już z dziecka nie.:(
Wiem, że można użyć xPath, xLink i inne tylko nie wiem jak całość połączyć.

Mój kod:

 #!/usr/bin/python
from xml.dom.minidom import parse
import xml.dom.minidom

DOMTree = xml.dom.minidom.parse("uzo.gml")
collection = DOMTree.documentElement

egb = collection.getElementsByTagName("egb:EGB_DzialkaEwidencyjna")
for EGB_DzialkaEwidencyjna in egb:
    type = EGB_DzialkaEwidencyjna.getElementsByTagName('egb:idDzialki')[0] 
    print "Indetyfikator dzialki: %s" % type.childNodes[0].data
    type = EGB_DzialkaEwidencyjna.getElementsByTagName('egb:powierzchniaEwidencyjna')[0]
    print "Powierzchnia dzialki: %s ha" % type.childNodes[0].data 
    type = EGB_DzialkaEwidencyjna.getElementsByTagName('egb:numerKW')[0] 
    print "Ksiega Wieczysta: %s" % type.childNodes[0].data
# ----------------------------------- ??? ----------------------------------------------------link: <egb:lokalizacjaDzialki2 xlink:href="#EGB_ObrebEwidencyjny.271"/>
```python

Pozostało 580 znaków

2016-10-05 22:19
0

Tak na szybko może to Ci pomoże: http://stackoverflow.com/a/17390280

Pozostało 580 znaków

2016-10-06 18:17
Uzo
0

Brak w tym rozwiązaniu podstawowego mojego problemu: odczyt xlink-ów. "przechodzenie" po gałęziach drzewa XML/GML.

Pozostało 580 znaków

2016-10-06 19:06
0

Spróbuj użyć tego: https://docs.python.org/3/library/xml.etree.elementtree.html Są tutaj przykłady jak odczytać każdy rodzaj tagu, atrybutu, etc..
Dodam tylko, że dla tej biblioteki istotne jest wskazanie namespace'u dla szukanego tagu.., ale to widać w przykładach.

Pozostało 580 znaków

2016-10-07 10:47
Krzywy Szczur
0

Nie wiem co to GML, ale do "zwykłych" plików XML dobrym parserem jest LXML (www.lxml.de)

Pozostało 580 znaków

2016-10-07 10:49
1

Ja za to bardzo lubię XML binding.
Eleganckie czyste rozwiązania, wymagany xml scheme do walidacji, wszystko reprezentowane przez obiekty.

Do pythona: pyxb.

Pozostało 580 znaków

2016-10-20 20:06
Uzo
0

Nie udało mi się: chcę połączyć taki: < egb:osobaFizyczna3 xlink:href = "#EGB_OsobaFizyczna.64160" / > z <egb:egb_osobafizyczna gml:id="EGB_OsobaFizyczna.64160">. Jakaś podpowiedź?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0