[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] help with xmlTextReaderRead (with DTD validation)
- From: Daniel Veillard <veillard redhat com>
- To: Denis Bourgeois <d bourgeois hotmail com>
- Cc: xml gnome org
- Subject: Re: [xml] help with xmlTextReaderRead (with DTD validation)
- Date: Tue, 29 Jul 2008 08:25:34 -0400
On Tue, Jul 29, 2008 at 07:31:27AM -0400, Denis Bourgeois wrote:
>
> Although I have contributed to a few (free) scientific applications
>(in C and F77) for quite some time, I'm new to xml and libxml2 (this may
>explain the naiveté of my question): I'm writing a C parser for an XML
>input (input only, no file editing or writing out) - so the xmlTextReader
>API (http://xmlsoft.org/xmlreader.html#L1142) seems very appropriate. I
>have gone through the tutorial and am now in the process of integrating
>DTD validation. The DTD validation correctly flags errors, but I can't
>seem to add appropriate code to halt the scanning process once a first
>parsing error occurs (the code below - lightly adapted from the tutorial -
>simply goes on and on, parsing the entire file despite the initial DTD
>parsing errors): --- C code ---
That's normal. DTD validation error are not fatal errors, so from
a parsing viewpoint it's normal to continue processing.
Add an xmlTextReaderIsValid() test in your reading loop and break if
it returns a value != 1
>once a first parsing error occurs? Question 2: The screen output indicates
>that the DTD error (lines 7. versus 12.) is immediately flagged after
>the first xmlTextReaderRead call (line 24.); if the xmlTextReader only
>scans one element node at a time, how can it initially flag this error
>(which only occurs later)? Is it building an entire DOM tree to do
No the reader builds a sliding subset of the tree as it progresses,
unless of course your document is tiny it will never be fully loaded in
memory.
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]