[pyar] Unicode, XMLs y minidom

Federico Manuel Echeverri Choux echeverrifm en gmail.com
Mie Sep 11 19:11:59 ART 2013


Hola!!!!! gente ando haciendo un proyecto de addendas y tengo el problema
con los unicodes, vi el video de Facundo ( muy bueno ) y sigo con el
problema.

el codigo que use es algo asi


from xml.dom import minidom
import codecs

#from xml.dom.minidom import parse
document = '''<?xml version="1.0" encoding="utf-8"?>
<Addenda>
<if:FacturaInterfactura TipoDocumento="Factura" xmlns:if="
https://www.interfactura.com/Schemas/Documentos">
<if:Emisor RI="Escribir_RI_Proveedor"
NumProveedor="Escribir_Numero_Proveedor"/>
<if:Receptor RI="Escribir_RI_Cliente"/>
<if:Encabezado Total="[IMPORTE]" SubTotal="[SUBTOTAL]"
Serie="[PARNONUMERICA]" NumSucursal="[CAMPOLIBRE1CONSIG]"
NumProveedor="Escribir_Numero_Proveedor"
MunicipioSucursalCliente="[CONSIGNARPOBLA]" Moneda="MXN"
Iva="[MONTOIMPUESTO4]" IVAPCT="[PORCENIMPUESTO4]"
FolioAvisoPrefactura="[NORECEP]" Folio="[PARTENUMERICA]"
FechaPago="[FECHAVENCIMIENTO(yyyy-mm-dd)]"
DomicilioSucursalCliente="[CONSIGNARCALLE] [CONSIGNARNUMINT]
[CONSIGNARNUMEXT] [CONSIGNARCOLONIA] [CONSIGNARPOBLA]"
DepartamentoCliente="[ENVIARAREFERENCIA]" CondicionPago="[DIASCREDITO]
DIAS" ColoniaSucursalCliente="[CONSIGNARCOLONIA]"
CPSucursalCliente="[CONSIGNARCODIGO]" FolioAvisoPago="[NUMEROGUIA]"
Fecha="[FECHADOCTO(yyyy-mm-dd)]T[HORADOCTO(HH:MM:SS)]">
<INILISTAPROD>
<if:Cuerpo Cantidad="[CANTIDAD]" Codigo="[CLIEALTERNA]"
Concepto="[PRODDESCRIP]" CUnitarioLista="[PRODPRECIO]"
EAN13="[PRODALTERNA]" FactorEmpaque="[NUMEMPAQUESPROD]"
PUnitario="[PRODPRECIO]" SubTotal="[PRODSUBTOTAL]"
 U_x0020_de_x0020_M="[PRODUNIVENTA]" Renglon="[NUMPARTIDA]"
CUnitarioUdeM="[PRODPRECIO]" Iva="[PRODMONTOIMP4]" Importe="[PRODIMPORTE]"
IVAPCT="[PRODMONTOIMP4]" CantidadUdeM="[PRODUNIVENTA]"/>
</INILISTAPROD>
</if:Encabezado>
</if:FacturaInterfactura>
</Addenda>
'''

print document

main = minidom.parseString(document)

ya probe con varias cosas pero quiero ver que me dicen ustedes.
El error que me da es este

Traceback (most recent call last):
  File "minidom_example1.py", line 25, in <module>
    main = minidom.parseString(document.decode('utf-8'))
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1931, in parseString
    return expatbuilder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in
parseString
    return builder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in
parseString
    parser.Parse(string, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in
position 39: ordinal not in range(128)

Me podrian orientar un poco, si uso este XML no me da problemas

<Addenda>
<DSCargaRemisionProv>
<Remision Id="Remision1" RowOrder="0">
<Proveedor>Escribir_ num_proveedor</Proveedor>
<Remision>[PARNONUMERICA]-[PARTENUMERICA]</Remision>
<Consecutivo>0</Consecutivo>
<FechaRemision>[FECHADOCTO(yyyy-mm-dd)]T00:00:00</FechaRemision>
<Tienda>[ENVIARAREFERENCIA]</Tienda>
<TipoMoneda>1</TipoMoneda>
<TipoBulto>2</TipoBulto>
<EntregaMercancia>[ENVIARAOBSERV]</EntregaMercancia>
<CumpleReqFiscales>true</CumpleReqFiscales>
<CantidadBultos>[CANTIDADUNIDADES]</CantidadBultos>
<Subtotal>[SUBTOTAL(#0.00)]</Subtotal>
<Descuentos>[TOTALDESCUENTOS(#0.00)]</Descuentos>
<IEPS>0.00</IEPS>
<IVA>[MONTOIMPUESTO4(#0.00)]</IVA>
<OtrosImpuestos>0.00</OtrosImpuestos>
<Total>[IMPORTE(#0.00)]</Total>
<CantidadPedidos>1</CantidadPedidos>
<FechaEntregaMercancia>[FECHARECEP(yyyy-mm-dd)]T00:00:00</FechaEntregaMercancia>
<FolioNotaEntrada>[NORECEP]</FolioNotaEntrada>
</Remision>
<Pedidos Id="Pedidos1" RowOrder="0">
<Proveedor>Escribir_ num_proveedor</Proveedor>
<Remision>[PARNONUMERICA]-[PARTENUMERICA]</Remision>
<FolioPedido>[SUPEDIDO]</FolioPedido>
<Tienda>[ENVIARAREFERENCIA]</Tienda>
<CantidadArticulos>[NUMEMPAQUES]</CantidadArticulos>
</Pedidos>
<INILISTAPROD>
<Articulos Id="Articulos[NUMPARTIDA]" RowOrder="[NUMPARTIDA]">
<Proveedor>Escribir_ num_proveedor</Proveedor>
<Remision>[PARNONUMERICA]-[PARTENUMERICA]</Remision>
<FolioPedido>[SUPEDIDO]</FolioPedido>
<Tienda>[ENVIARAREFERENCIA]</Tienda>
<Codigo>[CLIEALTERNA]</Codigo>
<CantidadUnidadCompra>[CANTIDAD]</CantidadUnidadCompra>
<CostoNetoUnidadCompra>[PRODPRECIO]</CostoNetoUnidadCompra>
<PorcentajeIEPS>0.00</PorcentajeIEPS>
<PorcentajeIVA>[PRODPORCENIMP4(#0.00)]</PorcentajeIVA>
</Articulos>
</INILISTAPROD>
</DSCargaRemisionProv>
</Addenda>

Saludos y muchas gracias
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130911/4670ae68/attachment.html>


More information about the pyar mailing list