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);
初学者,谢谢。 展开
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);
初学者,谢谢。 展开
5个回答
展开全部
用正则,我找个自己用的代码给你。
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]*?>";
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]*?>";
展开全部
1、replace标签替换.
2、正则处理。
Today is Sunday.<br>Tomorrow will be Monday.
可以replace<br>为"\n"
2、正则处理。
Today is Sunday.<br>Tomorrow will be Monday.
可以replace<br>为"\n"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String s="<body><p>asdsadsadasda</p></body>";
System.out.println(s.replace("<p>", "").replace("</p>", ""));
替换之前不需要判断。
replace和replaceAll
都是全部替换。区别是replaceAll支持正则表达式
如s.replaceAll("\\d","");将s字符串的所有数字全部去掉
System.out.println(s.replace("<p>", "").replace("</p>", ""));
替换之前不需要判断。
replace和replaceAll
都是全部替换。区别是replaceAll支持正则表达式
如s.replaceAll("\\d","");将s字符串的所有数字全部去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用java里面的正则表达式来匹配标签。
比较复杂了,自己可以研究一下。
比较复杂了,自己可以研究一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你题目什么意思?不懂啊?说明白?是说用java输出html代码?还是什么意思?
追问
就是比如说有一个html文件,
是这样的,
Today is Sunday.Tomorrow will be Monday.
然后让你在java里新建一个output file,
输出的格式应该是
Today is Sunday.
Tomorrow will be Monday.
应该怎么写java程序?用户输入的文件中,遇到这样的标签,就执行这样的代码?
追答
你是要写html解析器啊?这个有点麻烦,我就不管了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询