Xml extension changes

Stefano Corsi <[email protected]> Mon, 5 May 2003 11:05:04 +0000
Newsgroups gmane.comp.lang.moto.devel
Organization Moto Project
Message-ID <[email protected]>
--------------Boundary-00=_GSUE3HPHO2A42QOY1ESL
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello,

this is a new version of the Xml extension I posted before.
Now it has read/write mode (you can save to a new XmlDoc) and the ability=
 to=20
add new nodes and attributes.
Furthermore, because we probably don't want the full complexity of libxml=
2, I=20
have simplified function names and parameters, so that, for example,=20
xmlNodeListGetString becomes getString()...

I still have to add error handling and more features, but I'm amazed abou=
t how=20
smooth it was to add support for a new external lib in moto!

Stefano
--------------Boundary-00=_GSUE3HPHO2A42QOY1ESL
Content-Type: application/x-gzip;
  name="xml2.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xml2.patch.gz"

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

--------------Boundary-00=_GSUE3HPHO2A42QOY1ESL--