#pragma section-numbers off = Receita: LendoXmlComLibxml2 = Todo o manejo de XML no GNOME é feito a través da libxml, com ele podemos ler e modificar arquivos XML. Vejamos um exemplo. = O arquivo XML = {{{ John Fleck June 2, 2002 example keyword This is the headline This is the body text. }}} == Código == {{{ #!python import sys import libxml2 def parseStory (cur): cur = cur.children while cur != None: if cur.name == "keyword": print "Keyword: %s" % cur.getContent() cur = cur.next sys.exit(0) # Le arquivo xml do disco doc = libxml2.parseFile("sample_Document.xml") # Testa se o arquivo existe , se não existir fecha # o socket com arquivo e sai com erro. if doc == None: print "Document not parsed successfully." doc.freeDoc() sys.exit(1) # Pega o elemento Root neste caso vai ser "" cur = doc.getRootElement() # Testa se a variável "cur" está vazia se estiver # o documento deve estar vazio. if cur == None: print "Empty Document." doc.freeDoc() sys.exit(1) # E ainda testa se o nó root do documento é mesmo o # nó "" if cur.name != "story": print "Document of the wrong type, root node != story" doc.freeDoc() sys.exit(1) # Pega o nó filho de "" para nós "" cur = cur.children # Enquanto "cur" não estiver vazia loop ou seja pegue todos # os . while cur != None: if cur.name == "storyinfo": # Se for "" chama a função "parseStory" # que vai pegar os valores internos dele. parseStory(cur) cur = cur.next doc.freeDoc() }}} Você pode ver o codigo C em [[http://www.xmlsoft.org/tutorial/apc.html|Libxml Tutorial por John Fleck]] Volta para CookBook. ---- WiliamAlvesDeSouza -- (waa) -- wiliamsouza83(arroba)gmail(ponto)com