[reportlab-users] pyRXP CDATA sections

Andy Robinson reportlab-users@reportlab.com
Mon, 19 May 2003 14:31:26 +0100


> This person wants to indicate CDATA sections in the pyRXP output. Seems
> somewhat strange to me, but others may feel differently. It is only
> another flag which we can leave turned off by default.
>
> Anyone with 0.02euros to offer?

I have no problem, as long as it is off by default.

- Andy
>
> -----Original Message-----
> From: reportlab-info-admin@www.reportlab.co.uk
> [mailto:reportlab-info-admin@www.reportlab.co.uk]On Behalf Of Max
> Neunhoeffer
> Sent: 18 May 2003 17:41
> To: info@reportlab.com
> Subject: [reportlab-info] Message for the author of pyRXP
> >
> >
> Dear info@reportlab.com!
> >
> Could you please forward this message to the author of pyRXP, because
> I could not find his name or email anywhere.
> >
> Dear author of pyRXP!
> >
> I made the modification in the following patch file to pyRXP, because
> I wanted to be able to read in and parse an XML document and write
> it out again in Python. The problem was that CDATA sections were
> not marked. I found it convenient to have a switch in pyRXP to make
> CDATA sections appear as elements with type "<![CDATA[", empty
> attribute dictionary and a single string in the list of children.
> >
> Perhaps you like this modification or at least you have one more vote
> for any change which solves the above mentioned problem.
> >
> Best regards,
>   Max Neunhoeffer
> >
> Index: pyRXP.c
> ===================================================================
> RCS file: /cvsroot/reportlab/rl_addons/pyRXP/pyRXP.c,v
> retrieving revision 1.21
> diff -r1.21 pyRXP.c
> 56a57
> > static PyObject *CDATATagName;
> 84a86
> >     CDATATagName    special tagname used for CDATA sections\n\
> 214a217,220
> >         ReturnCDATASectionsAsTuples = 0\n\
> >             If this is on, the parser returns for each CDATA
> section a tuple\n\
> >             with name field equal to CDATATagName containing a
> single string\n\
> >             in its third field that is the CDATA section.\n\
> 256a263
> >         {"ReturnCDATASectionsAsTuples",0},
> 262a270
> > #define ReturnCDATASectionsAsTuples
> (ParserFlag)(1+(int)ReturnProcessingInstructions)
> 447,449c455,469
> <                       t = PYSTRING(bit->cdsect_chars);
> <                       PyList_Append(PDGetItem(stack[*depth],2),t);
> <                       Py_DECREF(t);
> ---
> >
> if(ParserGetFlag(p,ReturnCDATASectionsAsTuples)){
> >                             t = _makeNodePD( pd, CDATATagName,
> Py_None, 0);
> >                           if(pd->fourth==recordLocation)
> _reverseSrcInfoTuple(PyTuple_GET_ITEM(t,3));
> >                             Py_INCREF(CDATATagName);
> >                             Py_INCREF(Py_None);
> >                             s = PYSTRING(bit->cdsect_chars);
> >                             PyList_Append(PDGetItem(t,2),s);
> >                             Py_DECREF(s);
> >                           PyList_Append(PDGetItem(stack[*depth],2),t);
> >                           Py_DECREF(t);
> >                         } else {
> >                             t = PYSTRING(bit->cdsect_chars);
> >                             PyList_Append(PDGetItem(stack[*depth],2),t
> );
> >                           Py_DECREF(t);
> >                         }
> 534c554
> <       return n!=piTagName && n!=commentTagName;
> ---
> >       return n!=piTagName && n!=commentTagName && n!=CDATATagName;
> 905a926,927
> >         CDATATagName = PYSTRING8("<![CDATA[");
> >         PyDict_SetItemString(d, "CDATATagName", CDATATagName );
> --
>    //  //   Max Neunhöffer <max.neunhoeffer@math.rwth-aachen.de>
>   //  //   Alexianergraben 4-6, 52062 Aachen, Germany
>  //  //   Tel.: +49 241 406605 (private) / +49 241 8094550 (institute)
> //  //   May the Source be with you!
> >
> --
> Robin Becker
> _______________________________________________
> reportlab-users mailing list
> reportlab-users@reportlab.com
> http://two.pairlist.net/mailman/listinfo/reportlab-users
>