help me to validate a html file..to check for tag matching nd nesting..

satya_11's Avatar
Newbie Member
i need to write a program to open a given file and see if the nesting is fine,
assuming that all the tags in the html string are correctly formed,
that is when an angle bracket is seen,
assuming that it is followed by the remainder of a complete tag.

basically like validating infix expression..
but i dn ve a clear idea..
help me out!!
0
Salem's Avatar, Join Date: Nov 2007
Ambitious contributor
Code:
<head>
</head>
<body>
  <td>
    <tr>
    </tr>
  </td>
</body>
Use a stack.
Opening tag pushed onto the stack
Closing tag pops the stack and compares (they should be the same).
0
satya_11's Avatar
Newbie Member
ya..k..ll try wth tat..
0
satya_11's Avatar
Newbie Member
my prob is in pushing the html tag onto the stack..
In start tag, once i find '<' i need to store the characters as a string till it reaches '>'..
so that i ll be able to match d string wth d end tag..
dono hw to extract it..
0
Salem's Avatar, Join Date: Nov 2007
Ambitious contributor
while ( ch != '>' )
perhaps?
0
satya_11's Avatar
Newbie Member
i dn get u..
if i do so,wont i be pushing as characters into stack..
i wanna extract as substring..
like..


<html>
<body>
sdfg
</body>
</html>

In this code,
once i reach '<' in <html>,i need to store "html" as a string..
again wen i reach <body>,push "body" again as a string..
and wen i reach '</',in </body>,i pop d earlier n check whether both r same..


so,i need 2 push "html" as a singl string..
0
Salem's Avatar, Join Date: Nov 2007
Ambitious contributor
So separate the steps,
- read characters until you reach >
- push the resulting string onto a stack.

This should be a trivial problem compared to the rest of the task.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
But there are some tags that don't have a closing tags like IMG which is closed with />. As an example

<IMG src="path/to/image/file/name" />