java 移除html标签的属性 20
有一段html文本,只想去掉class和style属性,但要保留原结构和其他正常属性,就是如下例子<divclass="content"><divid="t1">文本1<...
有一段html文本,只想去掉class 和 style属性,但要保留原结构和其他正常属性,就是如下例子
<div class="content">
<div id="t1">
文本1
</div>
<p class="bbb">
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
希望最终结果为
<div>
<div>
文本1
</div>
<p>
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
用java写的话要怎么处理,谢谢
好了,谢谢大家啦,我自己去学习了下正则表达式自己解决了问题。
public static String delHTMLTag(String htmlStr) {
String regEx_style = "(class|style)=\"[A-Za-z0-9]*[^%:&’,;=?$x22]+[A-Za-z0-9]*\""; // 定义style、class的正则表达式
Pattern p_style = Pattern
.compile(regEx_style);
Matcher m_style = p_style.matcher(htmlStr);
System.out.println(m_style);
htmlStr = m_style.replaceAll(""); // 过滤style、class属性
return htmlStr; // 返回文本字符串
} 展开
<div class="content">
<div id="t1">
文本1
</div>
<p class="bbb">
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
希望最终结果为
<div>
<div>
文本1
</div>
<p>
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
用java写的话要怎么处理,谢谢
好了,谢谢大家啦,我自己去学习了下正则表达式自己解决了问题。
public static String delHTMLTag(String htmlStr) {
String regEx_style = "(class|style)=\"[A-Za-z0-9]*[^%:&’,;=?$x22]+[A-Za-z0-9]*\""; // 定义style、class的正则表达式
Pattern p_style = Pattern
.compile(regEx_style);
Matcher m_style = p_style.matcher(htmlStr);
System.out.println(m_style);
htmlStr = m_style.replaceAll(""); // 过滤style、class属性
return htmlStr; // 返回文本字符串
} 展开
5个回答
展开全部
针对于你提的问题,如果想去掉class和style属性必须对所需要去掉属性的标签增加id
以你提供的代码为例,首先需要增加id属性,修改后如下:
<div class="content" id=“testdiv”>
<div id="t1">
文本1
</div>
<p class="bbb" id=“testp”>
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
然后编写对应js代码,代码如下:
function delClass(){
$("#testdiv").removeClass("content");
$("#testp").removeClass("bbb");
}
上述代码可以去除Class
注:
如果程序为进入页面后调用则需要在body中增加onload方法也就是:onload="delClass();"
如果为点击式触发则在页面增加按钮,对按钮总方法onClick方法指定删除的js方法
希望回答对你有用。
以你提供的代码为例,首先需要增加id属性,修改后如下:
<div class="content" id=“testdiv”>
<div id="t1">
文本1
</div>
<p class="bbb" id=“testp”>
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
</div>
然后编写对应js代码,代码如下:
function delClass(){
$("#testdiv").removeClass("content");
$("#testp").removeClass("bbb");
}
上述代码可以去除Class
注:
如果程序为进入页面后调用则需要在body中增加onload方法也就是:onload="delClass();"
如果为点击式触发则在页面增加按钮,对按钮总方法onClick方法指定删除的js方法
希望回答对你有用。
追问
要用java,因为我项目要用java来大量删除那些属性
追答
java包括很多东西,不清楚是什么,什么类型的工程,说的清楚一些,会更好的帮助到你,最好是贴出写你说的java的代码。这样一起分析分析,会更好
展开全部
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* 使用正则表达式
*
*/
public class patternTest {
public static void main(String[] args) throws IOException {
Pattern patternClass = Pattern.compile(" (class|style)=\".*\"");
Reader buff = new FileReader("c:\\html.txt");
FileWriter write = new FileWriter("c:\\target.txt");
BufferedReader in = new BufferedReader(buff);
String s ;
while ((s=in.readLine())!=null) {
Matcher matcher = patternClass.matcher(s);
if(matcher.find()){
s = matcher.replaceAll("");
System.out.println(s);
}else{
System.out.println(s);
}
write.write(s+"\n");
}
write.close();
in.close();
}
}
html.txt 是你要处理的文本,
taget.txt是处理之后的文本,也直接在控制台打印出来了。
妹的。终于出来了。。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* 使用正则表达式
*
*/
public class patternTest {
public static void main(String[] args) throws IOException {
Pattern patternClass = Pattern.compile(" (class|style)=\".*\"");
Reader buff = new FileReader("c:\\html.txt");
FileWriter write = new FileWriter("c:\\target.txt");
BufferedReader in = new BufferedReader(buff);
String s ;
while ((s=in.readLine())!=null) {
Matcher matcher = patternClass.matcher(s);
if(matcher.find()){
s = matcher.replaceAll("");
System.out.println(s);
}else{
System.out.println(s);
}
write.write(s+"\n");
}
write.close();
in.close();
}
}
html.txt 是你要处理的文本,
taget.txt是处理之后的文本,也直接在控制台打印出来了。
妹的。终于出来了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我怎么觉得不要用JAVA,要JS比较好呢。。还简单。。你这不明显,我给你加了背景,效果能明显点
<div id="a" class="content">
<div id="t1">
文本1
</div>
<p class="bbb" id="b" style="background: #0FFF00">
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
<input type="button" value="点我去" onclick="abc()">
</div>
js中的代码:
function abc(){
document.getElementById("a").class="";
document.getElementById("b").class="";
document.getElementById("b").style.background="";
}
<div id="a" class="content">
<div id="t1">
文本1
</div>
<p class="bbb" id="b" style="background: #0FFF00">
文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
</p>
<input type="button" value="点我去" onclick="abc()">
</div>
js中的代码:
function abc(){
document.getElementById("a").class="";
document.getElementById("b").class="";
document.getElementById("b").style.background="";
}
追问
如果一万个这样的网页,是不是要写一万多个js?我的是要java大批量删除多个html里面的class和style属性,并不是一个而已
追答
那我想问一下:如果不是所有的项目都要移除呢,您写正则表达式是可以,有10000个页面,但是你把里面所有的属性都移除,那些还要效果的怎么办,您怎么区分那些还想要的属性呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用js把class和style置空
追问
要用java,因为我项目要用java来大量删除那些属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java不是javascript...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询