site de Fabien Torre


Source de svg-v2.py

1: #!/usr/bin/python 2: 3: from xml.dom.minidom import parse 4: import sys 5: 6: xmlfilename = sys.argv[1] 7: dom = parse(xmlfilename) 8: 9: 10: 11: def getChildNodesByType(n,type): 12: ce = [] 13: for f in n.childNodes: 14: if f.nodeType==type: 15: ce.append(f) 16: return ce 17: 18: 19: 20: def getChildNodesByTypeAndName(n,type,name): 21: ce = [] 22: for f in n.childNodes: 23: if (f.nodeType==type) and (f.nodeName==name): 24: ce.append(f) 25: return ce 26: 27: 28: 29: def childElements(n): 30: return getChildNodesByType(n,1) 31: 32: 33: 34: def childTexts(n): 35: return getChildNodesByType(n,3) 36: 37: 38: 39: def getChildElementsByTagName(n,tag): 40: return getChildNodesByTypeAndName(n,1,tag) 41: 42: 43: 44: def resolveElementsPathLoop(ns,path): 45: if len(path)==0: 46: return ns 47: else: 48: nexttag = path.pop(0) 49: nextns = [] 50: for n in ns: 51: nextns.extend(getChildElementsByTagName(n,nexttag)) 52: return resolveElementsPathLoop(nextns,path) 53: 54: 55: 56: def resolveElementsPath(dom,path): 57: starttag = path.pop(0) 58: return resolveElementsPathLoop(dom.getElementsByTagName(starttag),path) 59: 60: 61: 62: def getTextContent(n): 63: children = childTexts(n) 64: if len(children)>0: 65: return children[0].nodeValue 66: else: 67: return None 68: 69: 70: 71: def getAttributeValue(n,a): 72: if n.attributes.has_key(a): 73: return n.attributes[a].nodeValue 74: else: 75: return None 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: print "-- le nom de l'auteur --" 87: 88: titles = resolveElementsPath(dom,['dc:creator','cc:Agent','dc:title']) 89: print "L'auteur est",getTextContent(titles[0]),"!" 90: 91: 92: 93: print "-- le titre du dessin --" 94: 95: titles = resolveElementsPath(dom,['cc:Work','dc:title']) 96: 97: print getTextContent(titles[0]) 98: 99: 100: 101: print "-- les mots clefs --" 102: 103: items = resolveElementsPath(dom,['rdf:Bag','rdf:li']) 104: 105: for i in items: 106: print getTextContent(i) 107: 108: 109: 110: print "-- les rectangles --" 111: 112: rectangles = dom.getElementsByTagName("rect") 113: 114: print "il y en a",rectangles.length,':' 115: 116: for r in rectangles: 117: height = getAttributeValue(r,'height') 118: width = getAttributeValue(r,'width') 119: print ' . ',height,' x ',width 120: 121: 122:
Fabien Torre Valid HTML5! Valid CSS!
site de Fabien Torre