in reply to Seeking for advice: XML parsing with special requirements [Solved]

What about some preprocessing? If the undefined entities are the only problem with one of the parsers you've tried, you might try to first scan the XML for entities by a simple regexp, build a list of entities, "define" them and add a reference to the definition to the XML header. Not a perfect solution, but ...

Jenda
Enoch was right!
Enjoy the last years of Rome.

  • Comment on Re: Seeking for advice: XML parsing with special requirements

Replies are listed 'Best First'.
Re^2: Seeking for advice: XML parsing with special requirements
by Nocturnus (Scribe) on Apr 28, 2012 at 16:53 UTC

    Thank your very much for your answer.

    Unfortunately, preprocessing would be complicated. I would have to store the position of every entity, and, after having parsed the document, re-insert the entities because I need most of the document in original form.

    Regards,

    Nocturnus

      What if you define them like this:

      <!DOCTYPE videocollection [ <!ENTITY SF "&amp;SF;"> ]>

      Jenda
      Enoch was right!
      Enjoy the last years of Rome.

        Thanks again for the proposition, and sorry for answering so late.

        Well, even when doing what you said, there is still the problem that recognized_string or original_string contains rubbish in many cases.

        In the meantime, I managed to write my own XML processor which recognizes all the syntactic elements of an XML document (according to the XML 1.0 specification at the latest revision), even when these are arbitrarily nested; incorrect nesting (i.e. a malformed document) is recognized and reported.

        As required by my application, no entities or other syntactic elements are interpreted, replaced or specially treated otherwise. Since all my documents are UTF-8, my processor does not evaluate or respect the encoding of an XML document.

        This is just what I needed, so I am tagging this thread as solved now.

        Thanks for all the help again,

        Nocturnus