Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: XML::Parser XML validation

by choroba (Abbot)
on Jan 05, 2013 at 11:32 UTC ( #1011782=note: print w/ replies, xml ) Need Help??


in reply to XML::Parser XML validation

The parser cannot know how to fix the first error it finds. The other errors, therefore, might lack information value. Consider the following document:

<r> <a> <b> <c> </b> </a> </r>
The problem is the missing </c>. But the parser might tell you:
Start and end tag mismatch: c and b, line 5. Start and end tag mismatch: b and a, line 6. Start and end tag mismatch: a and r, line 7. Unexpected end of the document, line 7.
BTW, that's roughly what xmllint would tell you.
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ


Comment on Re: XML::Parser XML validation
Select or Download Code
Re^2: XML::Parser XML validation
by Anonymous Monk on Jan 05, 2013 at 11:35 UTC
    Thanks for your quick answer. So basically, I will have to fix any error found by the script and then re-run, fix any new error and repeat the procedure until there are no more errors?
      Yes. All bets are off for an XML document with errors. The first error found may actually not be the first error in the document: it is just the place where the parser got stuck.

      Consider the following:

      <a> <d> <e> </e> </b> </a>
      Where is the error? Should <d> be <b> or should </b> be </d>? Or perhaps they should both be <f> ... </f> tags? How is the parser to know? To be sure the XML is not only well formed but also correct, you will have to validate the XML according to a DTD or Schema definition.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

      My blog: Imperial Deltronics

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1011782]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2014-10-22 10:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (114 votes), past polls