JAVA中Html标签转换的问题。

1、要求是只输出<body>和</body>之间的内容,怎么表示呢?2、将<p></p>替换掉,用replace()么?怎么能在</p>时结束呢?3、<br>是不是就te... 1、要求是只输出<body>和</body>之间的内容,怎么表示呢?
2、将<p></p>替换掉,用replace()么?怎么能在</p>时结束呢?
3、<br>是不是就temp = temp.replace("<br>","\n");?
4、如果是像<h1></h1>这种的,直接去掉么?
5、replace()和replaceAll()的区别是?

我写到这里之后自己变得很混乱。。。
while(input.hasNext()){
String text=source.nextLine();
String body="<body>";
String endbody="</body>";
String temp;
if(temp.indexOf("<p>")!=-1){
temp = temp.replace("<p>", "");
System.out.print(temp);
初学者,谢谢。
展开
 我来答
狠心拒绝
2011-10-14 · TA获得超过371个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:320万
展开全部
用正则,我找个自己用的代码给你。
private static String rep="<[\\s]*?script[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?script[\\s]*?>" +
"|<[\\s]*?div[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?div[\\s]*?>"+
"|<[\\s]*?style[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?style[\\s]*?>"+
"|<[\\s]*?form[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?forum[\\s]*?>"+
"|<[\\s]*?input[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?select[\\s]*?>"+
"|<[\\s]*?<marquee [^>]*?>"+
"|<[\\s]*?\\/[\\s]*?<marquee [\\s]*?>" +
"|<[\\s]*?ul[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?ul[\\s]*?>" +
"|<[\\s]*?li[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?li[\\s]*?>" +
"|<[\\s]*?div[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?div[\\s]*?>" +
"|<[\\s]*?table[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?table[\\s]*?>" +
"|<[\\s]*?tr[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?tr[\\s]*?>" +
"|<[\\s]*?td[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?td[\\s]*?>" +
"|<[\\s]*?th[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?th[\\s]*?>";

/**
* 去掉危险的代码[div][style][form][input][script][ul][li][table][tr][td][th]
* @param content
* @return
*/
public static String removeDangerTag(String content){
Pattern p = null;
Matcher m = null;
p = Pattern.compile(rep,Pattern.CASE_INSENSITIVE);//去掉危险的HTML
m = p.matcher(content);
String temp = m.replaceAll("");
return temp;
}
//-----------按照你的要求,吧相应的p加入到正则匹配中
private static String rep="<[\\s]*?script[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?script[\\s]*?>" +
"|<[\\s]*?div[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?div[\\s]*?>"+
"|<[\\s]*?style[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?style[\\s]*?>"+
"|<[\\s]*?form[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?forum[\\s]*?>"+
"|<[\\s]*?input[^>]*?>"+
"|<[\\s]*?\\/[\\s]*?select[\\s]*?>"+
"|<[\\s]*?<marquee [^>]*?>"+
"|<[\\s]*?\\/[\\s]*?<marquee [\\s]*?>" +
"|<[\\s]*?ul[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?ul[\\s]*?>" +
"|<[\\s]*?li[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?li[\\s]*?>" +
"|<[\\s]*?div[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?div[\\s]*?>" +
"|<[\\s]*?table[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?table[\\s]*?>" +
"|<[\\s]*?tr[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?tr[\\s]*?>" +
"|<[\\s]*?td[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?td[\\s]*?>" +
"|<[\\s]*?p[^>]*?>" + //这里加入了p标签
"|<[\\s]*?\\/[\\s]*?p[\\s]*?>" +
"|<[\\s]*?th[^>]*?>" +
"|<[\\s]*?\\/[\\s]*?th[\\s]*?>";
Oo海之蓝歌oO
2011-10-14 · 喜欢计算机有关的东东
Oo海之蓝歌oO
采纳数:244 获赞数:876

向TA提问 私信TA
展开全部
1、replace标签替换.
2、正则处理。
Today is Sunday.<br>Tomorrow will be Monday.
可以replace<br>为"\n"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
还在不贵族大家拜拜
2011-10-14 · 超过13用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:30万
展开全部
String s="<body><p>asdsadsadasda</p></body>";
System.out.println(s.replace("<p>", "").replace("</p>", ""));
替换之前不需要判断。

replace和replaceAll
都是全部替换。区别是replaceAll支持正则表达式
如s.replaceAll("\\d","");将s字符串的所有数字全部去掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sundysea
2011-10-14 · TA获得超过148个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:206万
展开全部
用java里面的正则表达式来匹配标签。
比较复杂了,自己可以研究一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
矢风快乐
2011-10-14 · TA获得超过991个赞
知道小有建树答主
回答量:632
采纳率:100%
帮助的人:325万
展开全部
你题目什么意思?不懂啊?说明白?是说用java输出html代码?还是什么意思?
追问
就是比如说有一个html文件,
是这样的,
Today is Sunday.Tomorrow will be Monday.
然后让你在java里新建一个output file,
输出的格式应该是
Today is Sunday.
Tomorrow will be Monday.
应该怎么写java程序?用户输入的文件中,遇到这样的标签,就执行这样的代码?
追答
你是要写html解析器啊?这个有点麻烦,我就不管了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式