(Cuidado con la Identación)
Codigo Python:
# -*- coding: utf-8 -*-
from xml.dom import minidom
arbol_dom = minidom.parse("/ruta/para/llegar/al/archivo.xml")
class Cliente():
def __init__(self):
print "Ejercicio CRUD en Pyton"+"\n"
print "-----------------------"+"\n"
print "1- Listar"+"\n"
print "2- Crear"+"\n"
print "3- Modificar"+"\n"
print "4- Eliminar"+"\n"
print "5- Buscar"+"\n"
print "6- Salir"+"\n"
opcion = raw_input("Seleccione la opción deseada: ")
self.Opciones(opcion)
def Opciones(self, op):
op=int(op)
if op == 1:
self.Listar()
self.__init__()
elif op == 2:
print "Ingrese los datos a anexar a la base de datos"
idcliente= raw_input("Ingrese un Id Cliente(Tenga en cuenta el ultimo existente) ")
nombre= raw_input("Ingrese el Nombre ")
ape= raw_input("Ingrese el Primer Apellido ")
ape2= raw_input("Ingrese el Segundo Apellido ")
obs= raw_input("Ingrese la Observacion en caso de existir ")
datos = [idcliente, nombre,ape, ape2, obs]
self.Crear(datos)
self.Listar()
self.__init__()
elif op == 3:
id_mod= raw_input("Ingrese el Id del Cliente a Modificar ")
nombre= raw_input("Ingrese el Nombre ")
ape= raw_input("Ingrese el Primer Apellido ")
ape2= raw_input("Ingrese el Segundo Apellido ")
obs= raw_input("Ingrese la Observacion en caso de existir ")
datos = [id_mod, nombre,ape, ape2, obs]
self.Modificar(id_mod, datos)
self.Listar()
self.__init__()
elif op == 4:
id_bo= raw_input("Ingrese el Id del Cliente a Eliminar ")
self.Borrar(id_bo)
self.Listar()
self.__init__()
elif op == 5:
id_bu= raw_input("Ingrese el Id del Cliente a Buscar ")
self.MostrarBusqueda(id_bu)
self.__init__()
elif op == 6:
print "Gracias por Usar el Sistema de Registro"+"\n"
print "Licencia GNU - Recuerda Citar la fuente"+"\n"
print "Jonathan Ruiz 2012"
else:
print "Ingrese una opcion correcta"+"\n"
self.__init__()
def MostrarBusqueda(self, id_bu):
print "Datos Obtenidos:"+"\n"
nodoROW = self.Buscar(id_bu)
fields= nodoROW.getElementsByTagName('field')
for field in fields:
print field.childNodes[0].data
print "\n"
def Guardar(self):
fichero = open("/home/asl/Desktop/CRUD/data_cliente.xml", "w")
arbol_dom.writexml(fichero)
fichero.close()
def Crear(self, datos):
row = arbol_dom.createElement("row")
nodoTABLE = arbol_dom.getElementsByTagName('table_data')
#print nodoROW
nodoTABLE[0].appendChild(row)
#creo las filas
field = arbol_dom.createElement("field")
field.setAttribute("name", "idcliente")
row.appendChild(field)
texto = arbol_dom.createTextNode(datos[0])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "nombre")
row.appendChild(field)
texto = arbol_dom.createTextNode(datos[1])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "apellido1")
row.appendChild(field)
texto = arbol_dom.createTextNode(datos[2])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "apellido2")
row.appendChild(field)
texto = arbol_dom.createTextNode(datos[3])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "observaciones")
row.appendChild(field)
texto = arbol_dom.createTextNode(datos[4])
field.appendChild(texto)
#Abro,escribo y cierro el archivo
self.Guardar()
def Buscar(self,idcliente):
rowB = None
nodoROW = arbol_dom.getElementsByTagName('row')
for a in nodoROW:
field= a.getElementsByTagName('field')[0]
value = int(field.firstChild.data)
idcliente = int(idcliente)
if value == idcliente:
rowB = a
break
return rowB
def Listar(self):
nodoROW = arbol_dom.getElementsByTagName('row')
for a in nodoROW:
fields= a.getElementsByTagName('field')
for field in fields:
value=field.childNodes[0].data
print value
print "\n"
def Borrar(self, idcliente):
rowB = self.Buscar(idcliente)
rowB.parentNode.removeChild(rowB)
self.Guardar()
print "El Archivo ha sido Borrado"
def Modificar(self, idcliente, datos):
row_cliente = self.Buscar(idcliente)
fields=row_cliente.getElementsByTagName('field')
for field in fields:
row_cliente.removeChild(field)
#creo las filas
field = arbol_dom.createElement("field")
field.setAttribute("name", "idcliente")
row_cliente.appendChild(field)
texto = arbol_dom.createTextNode(datos[0])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "nombre")
row_cliente.appendChild(field)
texto = arbol_dom.createTextNode(datos[1])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "apellido1")
row_cliente.appendChild(field)
texto = arbol_dom.createTextNode(datos[2])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "apellido2")
row_cliente.appendChild(field)
texto = arbol_dom.createTextNode(datos[3])
field.appendChild(texto)
field = arbol_dom.createElement("field")
field.setAttribute("name", "observaciones")
row_cliente.appendChild(field)
texto = arbol_dom.createTextNode(datos[4])
field.appendChild(texto)
self.Guardar()
#Cuerpo del Sistema
Cliente()
Codigo XML
<?xml version="1.0" ?><mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="curso_mysql">
<table_data name="cliente">
<row>
<field name="idcliente">1</field>
<field name="nombre">Daniel</field>
<field name="apellido1">Fernandez</field>
<field name="apellido2">R</field>
<field name="observaciones">980Bs</field>
</row>
<row>
<field name="idcliente">2</field>
<field name="nombre">Joger</field>
<field name="apellido1">Quintero</field>
<field name="apellido2">E</field>
<field name="observaciones">450Bs</field>
</row>
<row>
<field name="idcliente">3</field>
<field name="nombre">Maria</field>
<field name="apellido1">Perez</field>
<field name="apellido2">Lobo</field>
<field name="observaciones">Ninguna</field>
</row>
<row>
<field name="idcliente">4</field>
<field name="nombre">Luis</field>
<field name="apellido1">Lobo</field>
<field name="apellido2">Sanchez</field>
<field name="observaciones">Alto</field>
</row>
</table_data>
</database>
</mysqldump>


7:52
Hosmar