XML Auslesen und in Graph speichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Spyder
User
Beiträge: 1
Registriert: Montag 17. Januar 2011, 15:36

Hallo,
bin Python-Neuling und würd mich freuen wenn ihr mir bei meinem Problem weiterhelfen könntet.
Ich will einen Graphen aus einer XML erzeugen.

XML-Beispiel (nur die childs):

Code: Alles auswählen

<node id="a" type="root">
		<child id="x"/>
		<child id="y"/>
</node>
	
<node id="x" type="con" wert="100">
		<child id="usw"/>
</con>
Es sollen also alle nodes (a und x) als Knoten im Graphen dienen und immer dann wenn die id als child in einem anderen node vorkommt existiert eine Verbindung (Edge), also eine von Node a zu Node x. Das hinzufügen der nodes bekomme ich hin, aber die Verbindung dann nicht.
Es soll halt bei jedem Knoten nachgesehen werden welche Childs existieren und dann soll eine Kante zu diesen im Graph erstellt werden. also Quasi
gr.add_edge((a, x)). Ich weiß nicht wie ich die Nodes die einmal im Graphen sind direkt anwählen kann um dann die Edge hinzuzufügen.

Code: Alles auswählen

import xml.etree.ElementTree as ET
from pygraph.classes.digraph import digraph
tree = ET.parse("sample.xml")
#Initialize Directed Graph
gr = digraph()

#Add all nodes to graph
for child in root:
    gr.add_node(child)
    
#Add all edges
#TODO

BlackJack

@Spyder: Na Du wirst Dir einfach ein Dictionary erstellen müssen wo IDs auf Knoten abgebildet werden. Und da kannst Du dann ja über die ID auf den dazugehörigen Knoten zugreifen.
Antworten