ich habe folgende graphml-Datei
http://paste.pocoo.org/show/145977/
Daraus möchte ich alle Elemente <node> und <edge> auslesen.
Weiterhin benötige ich vom Element node
das Attribut id und den Text vom Unterelement NodeLabel
und vom Element edge
die Attribute target und source und den Text vom Unterelement EdgeLabel.
Das gelingt mir mit folgendem Code auch
Code: Alles auswählen
from lxml import etree
def main():
tree = etree.parse("testsfc.graphml")
for node in tree.xpath(".//*[local-name()='node']"):
print "node", node.get('id'), node.xpath("string()").strip()
for edge in tree.xpath(".//*[local-name()='edge']"):
print "edge", edge.get('source'), edge.get('target'), \
edge.xpath("string()").strip()
if __name__ == '__main__':
main()
node.xpath("string()").strip()
aus der print-Anweisung nicht, da ich mir ja sicher sein will,
das der Text immer vom Element NodeLabel kommen soll.
Wie kann ich das besser lösen? Vielleicht kann mir ja jemand helfen?
gruss
marlob