Lists Home |
Date Index |
I'll second that. It is a basic approach but works fairly well,
and you have a convenient place to correct bugs that arise from yet
another unanticipated input.
The thing I don't like about it is that you can't hide the regexp
calls in element(), or you'll escape significant delimiters.
A related approach is to use a few more functions, say,
starttag(), endtag(), attribute() and escapecontent().
More verbose, but you can encapsulate the regexp handling.
The other technique that has proven useful for some situations is
to use a magic string as an escape for the real delimiters, building up
a block of XML as needed, then applying a (single but complicated)
global regexp to replace everything necessary in one fell swoop.
Thomas B. Passin wrote:
> [Rich Salz]
>>I didn't say it was easy. I said it was disappointing that the average
>>programmer can't just output a little bit of XML -- a config file,
>>for example -- without some heavyweight API. That would mean, for
>>example, embedded returns -- unnormalized line-end -- are out of
>>scope for what I was talking about.
> Well, for simple files where you __know__ you will not run into the harder
> problems - like some of those config files, say, - and especially if you
> know there will not be attributes - I like to use a little element generator
> that returns a complete element as a string. That way it is well-formed,
> and you can use it recursively.
> It could look like this -
> result = element('div','This is the content')
> result += element('p', element('b','Let us start with bold') + 'this is not
> You use string or RE replace to handle the more obvious escaping and do not
> worry about empty element syntax. Very easy to program, gives you
> well-formed output (modulo encoding, but just stick with ASCII or iso-8859-x
> if you know your editor will produce it), flexible to use. Extending it to
> attributes is not hard, __if__ you know your input won't come from James
> Clark or some other trickster.
> way. It is better than writing the string fragments, much better. It is
> only good when you __know__ you will not bump up against all the nasties.
> Of course, how can a newbie know that??? Oh well...
> Tom P
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
> The list archives are at http://lists.xml.org/archives/xml-dev/
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://lists.xml.org/ob/adm.pl>