parser xml

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

```
0

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

0

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

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.

0

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

1

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

Do pythona: pyxb.

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ź?

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