Re: On the fly XML parser

Alex Rousskov <[email protected]> Thu, 1 Jul 2004 14:15:14 -0600 (MDT)
Newsgroups gmane.comp.parsers.hapy.user
Message-ID <[email protected]>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime-oOUblnuQwHKola3qYQ6TW/IULO3mGbRi9nwVQlTi/[email protected] for more info.

--0-1176238263-1088712914=:8428
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 3 Jun 2004, Romain Behar wrote:

> There is another tweak in the prefix parsing loop:
> ...
> helps the parser not to stop on string parsing (e.g.
> "<!--" in rComment);
> is there a better way to handle this trick?

Romain's use case uncovered a bug in prefixing code. The patch is
attached and will be included in 0.0.7 release. The bug does not
affect parsers that have access to entire input.

Thank you,

Alex.

-- 
Protocol performance, functionality, and reliability testing.
Tools, services, and know-how.
http://www.measurement-factory.com/
--0-1176238263-1088712914=:8428
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="startsWith.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.58.0407011415140.8428-LbpN3Auhdh+Rtz+nHKFJDvXmoG9oyoYx@public.gmane.org>
Content-Description: /tmp/startsWith.diff
Content-Disposition: attachment; filename="startsWith.diff"

SW5kZXg6IHNyYy9BbGdvcml0aG1zLmNjDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL3Vzci9sb2NhbC9DVlMvVG1mQmFzZS9IYXB5L3Ny
Yy9BbGdvcml0aG1zLmNjLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNA0K
ZGlmZiAtdSAtcjEuMzQgQWxnb3JpdGhtcy5jYw0KLS0tIHNyYy9BbGdvcml0
aG1zLmNjCTMgTWFyIDIwMDQgMDQ6MDc6NDYgLTAwMDAJMS4zNA0KKysrIHNy
Yy9BbGdvcml0aG1zLmNjCTEgSnVsIDIwMDQgMDU6MTU6NDAgLTAwMDANCkBA
IC02NTQsMTggKzY1NCwxMiBAQA0KIH0NCiANCiBIYXB5OjpBbGdvcml0aG06
OlN0YXR1c0NvZGUgSGFweTo6U3RyaW5nQWxnOjpyZXN1bWUoQnVmZmVyICZi
dWYsIFByZWUgJikgY29uc3Qgew0KLQljb25zdCBzdHJpbmc6OnNpemVfdHlw
ZSBjb250ZW50U2l6ZSA9IGJ1Zi5jb250ZW50U2l6ZSgpOw0KLQlpZiAoY29u
dGVudFNpemUgPCB0aGVUb2tlbi5zaXplKCkpIHsNCi0JCWlmIChidWYuc2F3
RW5kKCkpDQotCQkJcmV0dXJuIFJlc3VsdDo6c2NNaXNzOw0KLQkJcmV0dXJu
IChjb250ZW50U2l6ZSA+IDAgJiYgIWJ1Zi5zdGFydHNXaXRoKHRoZVRva2Vu
KSkgPw0KLQkJCVJlc3VsdDo6c2NNaXNzIDogUmVzdWx0OjpzY01vcmU7IC8v
IG5lZWRfbW9yZV9pbnB1dA0KKwlib29sIG5lZWRNb3JlID0gZmFsc2U7DQor
CWlmIChidWYuc3RhcnRzV2l0aCh0aGVUb2tlbiwgbmVlZE1vcmUpKSB7DQor
CQlidWYuYWR2YW5jZSh0aGVUb2tlbi5zaXplKCkpOw0KKwkJcmV0dXJuIFJl
c3VsdDo6c2NNYXRjaDsNCiAJfQ0KLQlpZiAoIWJ1Zi5zdGFydHNXaXRoKHRo
ZVRva2VuKSkgew0KLQkJcmV0dXJuIFJlc3VsdDo6c2NNaXNzOw0KLQl9DQot
CWJ1Zi5hZHZhbmNlKHRoZVRva2VuLnNpemUoKSk7DQotCXJldHVybiBSZXN1
bHQ6OnNjTWF0Y2g7DQorCXJldHVybiBuZWVkTW9yZSA/IFJlc3VsdDo6c2NN
b3JlIDogUmVzdWx0OjpzY01pc3M7DQogfQ0KIA0KIGJvb2wgSGFweTo6U3Ry
aW5nQWxnOjp0ZXJtaW5hbChzdHJpbmcgKm5hbWUpIGNvbnN0IHsNCkluZGV4
OiBzcmMvQnVmZmVyLmNjDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
ZmlsZTogL3Vzci9sb2NhbC9DVlMvVG1mQmFzZS9IYXB5L3NyYy9CdWZmZXIu
Y2Msdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE5DQpkaWZmIC11IC1yMS4x
OSBCdWZmZXIuY2MNCi0tLSBzcmMvQnVmZmVyLmNjCTE2IEFwciAyMDA0IDA0
OjAyOjIzIC0wMDAwCTEuMTkNCisrKyBzcmMvQnVmZmVyLmNjCTEgSnVsIDIw
MDQgMDU6MTU6NDAgLTAwMDANCkBAIC0zNiw4ICszNiwxNiBAQA0KIAlyZXR1
cm4gdGhlRGF0YS5zaXplKCkgPyB0aGVEYXRhLnN1YnN0cihwb3MoKSArIG9m
ZikgOiB0aGVEYXRhOw0KIH0NCiANCi1ib29sIEhhcHk6OkJ1ZmZlcjo6c3Rh
cnRzV2l0aChjb25zdCBzdHJpbmcgJnMsIGNvbnN0IHNpemVfdHlwZSBvZmYp
IGNvbnN0IHsNCi0JcmV0dXJuIHN0cmluZ19jb21wYXJlKHRoZURhdGEsIHBv
cygpICsgb2ZmLCBzLnNpemUoKSwgcykgPT0gMDsNCitib29sIEhhcHk6OkJ1
ZmZlcjo6c3RhcnRzV2l0aChjb25zdCBzdHJpbmcgJnBmeCwgYm9vbCAmbmVl
ZE1vcmUpIGNvbnN0IHsNCisJY29uc3Qgc2l6ZV90eXBlIGNzaXplID0gY29u
dGVudFNpemUoKTsNCisJaWYgKGNzaXplIDwgcGZ4LnNpemUoKSkgew0KKwkJ
bmVlZE1vcmUgPSAhc2F3RW5kKCkgJiYNCisJCQkoY3NpemUgPD0gMCB8fCBz
dHJpbmdfY29tcGFyZSh0aGVEYXRhLCBwb3MoKSwgY3NpemUsIHBmeCkgPT0g
MCk7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0gZWxzZSB7DQorCQluZWVkTW9y
ZSA9IGZhbHNlOw0KKwkJcmV0dXJuIHN0cmluZ19jb21wYXJlKHRoZURhdGEs
IHBvcygpLCBwZnguc2l6ZSgpLCBwZngpID09IDA7DQorCX0NCiB9DQogDQog
dm9pZCBIYXB5OjpCdWZmZXI6OmFwcGVuZChjb25zdCBzdHJpbmcgJm1vcmVE
YXRhKSB7DQpJbmRleDogc3JjL2luY2x1ZGUvSGFweS9CdWZmZXIuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC91c3IvbG9jYWwvQ1ZT
L1RtZkJhc2UvSGFweS9zcmMvaW5jbHVkZS9IYXB5L0J1ZmZlci5oLHYNCnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xOA0KZGlmZiAtdSAtcjEuMTggQnVmZmVy
LmgNCi0tLSBzcmMvaW5jbHVkZS9IYXB5L0J1ZmZlci5oCTE2IEFwciAyMDA0
IDA0OjAyOjI0IC0wMDAwCTEuMTgNCisrKyBzcmMvaW5jbHVkZS9IYXB5L0J1
ZmZlci5oCTEgSnVsIDIwMDQgMDU6MTU6NDAgLTAwMDANCkBAIC0yNSw3ICsy
NSw3IEBADQogCQlzaXplX3R5cGUgY29udGVudFNpemUoKSBjb25zdCB7IHJl
dHVybiB0aGVEYXRhLnNpemUoKSAtIHBvcygpOyB9DQogCQlzdHJpbmcgY29u
dGVudChjb25zdCBzaXplX3R5cGUgb2ZmID0gMCkgY29uc3Q7DQogCQljaGFy
IHBlZWsoY29uc3Qgc2l6ZV90eXBlIG9mZiA9IDApIGNvbnN0IHsgcmV0dXJu
IHRoZURhdGFbcG9zKCkgKyBvZmZdOyB9DQotCQlib29sIHN0YXJ0c1dpdGgo
Y29uc3Qgc3RyaW5nICZzLCBjb25zdCBzaXplX3R5cGUgb2ZmID0gMCkgY29u
c3Q7DQorCQlib29sIHN0YXJ0c1dpdGgoY29uc3Qgc3RyaW5nICZzLCBib29s
ICZuZWVkTW9yZSkgY29uc3Q7DQogCQlib29sIHNhd0VuZCgpIGNvbnN0IHsg
cmV0dXJuIGRpZFNlZUVuZDsgfQ0KIA0KIAkJdm9pZCBhcHBlbmQoY29uc3Qg
c3RyaW5nICZhRGF0YSk7DQo=

--0-1176238263-1088712914=:8428--


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com