[pyar] Salto de linea en XML
Hugo Osvaldo Barrera
hugo en osvaldobarrera.com.ar
Mie Dic 12 15:35:52 ART 2012
On 2012-12-12 11:09, Mauricio Baeza wrote:
> On 12/12/12 04:45, Pedro Jose Pezzarini wrote:
>> Intentaste, leer los datos de entrada "tal cual estan", y modificarlos
>> en la ejecucion del programa, para hacerlos compatibles?
>>
>>
>> El 11 de diciembre de 2012 19:24, Jamil Enriquez Deceano
>> <jenriquezdeceano en gmail.com <mailto:jenriquezdeceano en gmail.com>> escribió:
>>
>> Puedes sacar todos los conceptos y sus atributos y re-definir como
>> te indica Tio Oscar, para que obtengas lo que necesites.
>>
>>
>> El 11 de diciembre de 2012 14:59, Mauricio Baeza
>> <mauricio01 en correolibre.org <mailto:mauricio01 en correolibre.org>>
>> escribió:
>>
>> On 11/12/12 14:47, Tio Oscar wrote:
>>> El 11 de diciembre de 2012 20:07, Mauricio Baeza
>>> <mauricio01 en correolibre.org
>>> <mailto:mauricio01 en correolibre.org>> escribió:
>>>
>>> On 11/12/12 14:03, Gonzalo Odiard wrote:
>>>> Podes usar CDATA?
>>>>
>>>> Gonzalo
>>>>
>>>> 2012/12/11 Mauricio Baeza <mauricio01 en correolibre.org
>>>> <mailto:mauricio01 en correolibre.org>>
>>>>
>>>> On 11/12/12 13:49, Sebastian Bassi wrote:
>>>>
>>>> Sin mirar la spec de XML, se me hace que como
>>>> valor de los atributos
>>>> los saltos de linea pueden ser ignorados, si no
>>>> es que están
>>>> prohibidos directamente.
>>>>
>>>> 2012/12/11 Mauricio Baeza
>>>> <mauricio01 en correolibre.org
>>>> <mailto:mauricio01 en correolibre.org>>:
>>>>
>>>> Hola *.
>>>>
>>>> ¿Alguien podría decirme por qué no recupero
>>>> los saltos de línea del atributo
>>>> descripción del siguiente código?
>>>>
>>>> from xml.etree import ElementTree
>>>>
>>>> s = """<Conceptos>
>>>> <Concepto cantidad="1.00"
>>>> descripcion="Prueba de concepto
>>>> En dos lineas
>>>> mejor tres" importe="1000.00"
>>>> noIdentificacion="1272005004"
>>>> unidad="Servicio" valorUnitario="1000.00"/>
>>>> </Conceptos>"""
>>>>
>>>> xml = ElementTree.fromstring(s)
>>>>
>>>> for c in xml.getchildren():
>>>> print c.attrib['descripcion']
>>>>
>>>>
>>>>
>>>> Un requisito indispensable es que sea con
>>>> ElementTree...
>>>>
>>>> Gracias
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>>
>>>> Gracias...
>>>>
>>>> Haciendo otra pruebas, si uso el valor decimal del
>>>> salto de línea, si los respeta al parsear, el
>>>> problema es que los originales no vienen así...
>>>>
>>>>
>>>> s = """
>>>> <Conceptos>
>>>> <Concepto
>>>> cantidad="1.00"
>>>> descripcion="Prueba de concepto
En dos
>>>> lineas
mejor tres"
>>>>
>>>> importe="1000.00"
>>>> noIdentificacion="1272005004"
>>>> unidad="Servicio"
>>>> valorUnitario="1000.00"/>
>>>> </Conceptos>"""
>>>>
>>>>
>>>> Saludos
>>>>
>>>>
>>>
>>>
>>> Si, vi algo de eso en internet... el problema, es que no
>>> puedo modificar los originales, así llegan...
>>>
>>>
>>> Saludos
>>>
>>> --
>>>
>>>
>>> Realmente no es muy prolijo, yo te recomendaría hacer esto:
>>>
>>> <Conceptos>
>>> <Concepto cantidad="1.00" importe="1000.00"
>>> noIdentificacion="1272005004" unidad="Servicio"
>>> valorUnitario="1000.00">
>>> <descripcion><![CDATA[Prueba de concepto
>>> En dos lineas
>>> mejor tres]]></Concepto>
>>> </Conceptos>
>>>
>>> --
>>> El Tio ~ Programador, hacker y filósofo
>>>
>>
>>
>> Gracias...
>>
>> Tal cual lo pones, me da error al parsear... pero... el punto
>> es que no puedo modificar el original, son archivos que me
>> llegan así...
>>
>>
>> Saludos
>>
>
>
>
> ¿Te refieres a leer en crudo sin usar las librerías para XML?
>
>
> --
> __________________________________
> Mauricio Baeza Servín
> www.universolibre.org
> Todo lo que no podemos dar nos posee... Andre Gid
>
>
>
Claro, yo opino lo mismo.
Leé el archivo como archivo de texto plano, hacele las modificaciones
que debas en memoria y después parseá ese XML.
No debe ser mucho laburo convertir a CDATA los campos que correspondan
haciendolo así (una regex seguro alcanza).
--
Hugo Osvaldo Barrera
More information about the pyar
mailing list