如何分析并判断一个HTML文件的所有<>中的标记是否合法,并且成对出现??????

appow 2002-01-25 10:18:04
如何分析并判断一个HTML文件的所有超文本标记是否合法??????
...全文
608 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
appow 2002-01-25
  • 打赏
  • 举报
回复
JAVA中没有现成的类库吗?
haichuang 2002-01-25
  • 打赏
  • 举报
回复
那你就要建立一个合法标签表进行一一对照比较了!
appow 2002-01-25
  • 打赏
  • 举报
回复
以上所言即是,那如果我想知道HTML的标记是不是合法的呢?比如<tttt>在HTML中是不会被解析的呀
gzgangster 2002-01-25
  • 打赏
  • 举报
回复
in = new StringReader(pageContent.toString());
chr = in.read();
while(chr!=-1){/**主循环**/
chr = in.read();
if(chr=='<'){/**发现一个TAG并开始处理**/
chr = in.read();
while(chr!='>'){
if(chr=='<')
return false;/**没有成对出现**/
chr = in.read();
}
}
return ture;

你去试试,希望能对你有用.
lyneville 2002-01-25
  • 打赏
  • 举报
回复
在<开始到>结束, 明白吗?
skyyoung 2002-01-25
  • 打赏
  • 举报
回复
计算“<”和“>”的个数是否偶数。比较简单的算法
appow 2002-01-25
  • 打赏
  • 举报
回复
我的信箱是larrow@263.net

麻烦你把那段源码发来吧,谢谢了!
pengz 2002-01-25
  • 打赏
  • 举报
回复
要写HTML 的parser?去看netscape的源码吧。很痛苦的~
gzgangster 2002-01-25
  • 打赏
  • 举报
回复
不好意思,打错几个字。更正一下。

你如果是仅需要在WINDOWS环境下运行,建议你使用IE提供的API接口,效果就好比是用IE去打开一遍,如果没有错误返回,那么所有的TAG及语法都是正确的了.否则就有问题,还可以返回错误出现的具体位置及类型。这是最简单的办法.
如果需要跨平台应用,这个办法就不通用.必须考虑不同浏览器的API.呵!是不是有点复杂?

可以考虑上面仁兄的建议,建立一个HTML TAG BNF,还有一个值得注意的问题就是,TAG对了,不一定语法就通过了,还需要考虑TAG中的内容.实现起来比较复杂.如果你需要我可以提供一个我写的程序供你参考,但注释不够,看起来会有点吃力.
gzgangster 2002-01-25
  • 打赏
  • 举报
回复
你如果是仅需要在WINDOWS环境下运行,建议你使用IE提供的API接口,效果就好比是用IE去解析一遍,如果没有错误返回,那么所有的TAG及语法都是正确的了.否则就有问题,还可以返回这是最简单的办法.
如果需要跨平台应用,这个办法就不通用.不许考虑不同浏览器的API.呵!是不是有点复杂?

可以考虑上面仁兄的建议,建立一个HTML TAG BNF,还有一个值得注意的问题就是,TAG对了,不一定语法就通过了,还需要考虑TAG中的内容.实现起来比较复杂.如果你需要我可以提供一个我写的程序供你参考,但注释不够,看起来会有点吃力.
zlq 2002-01-25
  • 打赏
  • 举报
回复
HTML基本上有这些:都是需要编程实现.
<A </A> <ABBR> <ABBR </ABBR> <ABOVE> <ACRONYM> <ACRONYM </ACRONYM> <ADDRESS> <ADDRESS </ADDRESS> <APPLET </APPLET> <ARRAY> <AREA </AREA
<B> <B </B> <BASE <BASEFONT <BDO> <BDO </BDO> <BGSOUND <BIG> <BIG </BIG> <BLINK> </BLINK> <BLOCKQUOTE> <BLOCKQUOTE </BLOCKQUOTE> <BODY <BODY> </BODY> <BOX> <BR <BR> <BIG <BLINK <BUTTON> </BUTTON>
<CAPTION> <CAPTION </CAPTION> <CENTER> <CENTER </CENTER> <CITE> <CITE </CITE> <CODE> <CODE </CODE> <COL> <COL <COLGROUP <COLGROUP> </COLGROUP> <COMMENT> </COMMENT>
<DD> <DD </DD> <DEL> <DEL </DEL> <DFN> <DFN </DFN> <DIR> <DIR </DIR> <DIV> <DIV </DIV> <DL> <DL </DL> <DT> <DT </DT>
<EM> <EM </EM> <EMBED
<FIELDSET> <FIELDSET </FIELDSET> <FIG> <FONT </FONT> <FORM> <FORM </FORM> <FRAME <FRAMESET </FRAMESET>
<H1> <H1 </H1> <H2> <H2 </H2> <H3> <H3 </H3> <H4> <H4 </H4> <H5> <H5 </H5> <H6> <H6 </H6> <HEAD> <HEAD </HEAD> <HR> <HR <HTML> <HTML </HTML>
<I> <I </I> <IFRAME> </IFRAME> <ILAYER> </ILAYER> <IMG <INPUT> <INPUT <INS> <INS </INS> <ISINDEX> <ISINDEX
<KBD> <KBD </KBD>
<LABEL> <LABEL </LABEL> <LAYER> <LAYER </LAYER> <LEGEND> <LEGEND </LEGEND> <LI> <LI </LI> <LINK <LISTING> </LISTING>
<MAP </MAP> <MARQUEE </MARQUEE> <MENU> <MENU </MENU> <META <MULTICOL> </MULTICOL>
<NEXTID <NOBR> </NOBR> <NOFRAMES> </NOFRAMES> <NOLAYER> </NOLAYER> <NOTE> </NOTE> <NOSCRIPT> </NOSCRIPT>
<OBJECT> <OBJECT </OBJECT> <OL> <OL </OL> <OPTION> <OPTION </OPTION> <OPTGROUP> <OPTGROUP </OPTGROUP>
<P <P> </P> <PARAM <PRE> <PRE </PRE>
<Q> <Q </Q> <QUOTE>
<RANGE> <ROOT>
<S> <S </S> <SAMP> <SAMP </SAMP> <SCRIPT <SCRIPT> </SCRIPT> <SELECT <SELECT> </SELECT> <SMALL> <SMALL </SMALL> <SOUND <SPACER> <SPAN> <SPAN </SPAN> <SQRT> <STRIKE> <STRIKE </STRIKE> <STRONG> <STRONG </STRONG> <STYLE> <STYLE </STYLE> <SUB> <SUB </SUB> <SUP> <SUP </SUP>
<TABLE> <TABLE </TABLE> <TBODY> <TBODY </TBODY> <TD <TD> </TD> <TEXT> <TEXTAREA <TEXTAREA> </TEXTAREA> <TFOOT> <TFOOT </TFOOT> <TH <TH> </TH> <THEAD> <THEAD </THEAD> <TITLE> </TITLE> <TR <TR> </TR> <TT> </TT> <TT
<U> <U </U> <UL> <UL </UL>
<VAR> </VAR> <VAR
<WBR>
<XMP> </XMP>

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧