如何判断一个HTML字符串格式是否完整

wzrlover 2007-05-18 10:38:32
一个完整正确的标签格式型如:<标签名 .../> 或<标签名 ...></标签名>
当然更复杂的可能标签嵌套标签,如何判断这样的html字符串的格式是否完整正确?

如:
<container:content>
<b:selectText>
<input type="text" id="a"/>
</b:selectText>
</container:content>

...全文
498 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lexchou 2007-05-18
  • 打赏
  • 举报
回复
你这要求就可以将其当为XML来验证了,parse通过就是完整的
suxq126 2007-05-18
  • 打赏
  • 举报
回复
mark
古月一刀2005 2007-05-18
  • 打赏
  • 举报
回复
学习!
CrazyGou 2007-05-18
  • 打赏
  • 举报
回复
//不知道这里该如何递归匹配,只好用这种笨办法了。挺费资源
String str = ...;
String regEx = "<([^<>]+)(/>|>[^<>]*</\\1>)";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
str = str.replaceAll(regEx, "");
m = p.matcher(str);
}
if (str.equals(""))
System.out.println("完整");
else
System.out.println("不完整");
wzrlover 2007-05-18
  • 打赏
  • 举报
回复
我不需要Tidy这样检查这么仔细,它会检查整个页面文档的格式是否符合规范,而不是特定字符串,如:
public static void main(String[] args)throws Exception{
String s="<table>" +
"<tr><td></td></tr>" +
"<tr><td></td></tr>" +
"<tr><td></td></tr>" +
"</table>";
Tidy tidy=new Tidy();

ByteArrayInputStream bais=new ByteArrayInputStream (s.getBytes());
FileOutputStream fos=new FileOutputStream(new File("d:/tidy.xml"));
tidy.parse(bais, fos);
}
就会报错!

如何简单的判断如题描述的格式?只需要检查标签名以及内嵌标签名是否完整。。
cpu2001 2007-05-18
  • 打赏
  • 举报
回复
http://tidy.sourceforge.net/
cpu2001 2007-05-18
  • 打赏
  • 举报
回复
网上查一下tidy的资料
wzrlover 2007-05-18
  • 打赏
  • 举报
回复
如:html="<container:content> "+
" <b:selectText> "+
" <input type=\"text\" id=\"a\"/> "+
" </b:selectText> "+
"</container:content> ";

用正则表达式??
古月一刀2005 2007-05-18
  • 打赏
  • 举报
回复
学习
maskice 2007-05-18
  • 打赏
  • 举报
回复
学习
rabbitbug 2007-05-18
  • 打赏
  • 举报
回复
用正则表达式看看
wzrlover 2007-05-18
  • 打赏
  • 举报
回复
用xml来验证格式要求比较严格,比如<table width="3"height="4" /> 就会报错,因为必需在属性之间加空格,而实际情况这也是经常出现的,允许的。
wzrlover 2007-05-18
  • 打赏
  • 举报
回复
用xml来验证格式要求比较严格,比如<table width="3"height="4" /> 就会报错,因为必需在属性直接加空格,而实际情况这也是经常出现的,允许的。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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