当前页面: 开发资料首页 → JSP 专题 → 怎么提取-lt;body-gt;-lt;/body-gt;之间的内容?
怎么提取-lt;body-gt;-lt;/body-gt;之间的内容?
摘要: 怎么提取<body></body>之间的内容?
怎么将<body></body>之间的内容提取出来,存在一个字符串中?
提取什么啊,问题也太笼统了吧
用java.net包中的
url对象获得文本放入StringBuffer,
用字符处理程序,
<script language="javascript">
function getBodyContext(){
str = document.body.innerHTML;
alert(str);
}
</script>
是不是指的这个。。。
我说的意思是:
我不想要网页中的
、<head></head>等其他内容,只想把每一个网页中的<body></body>之间的字符取出来,存在一个字符串中,怎么办?
document.body.innerHTML这个得不到你要的效果吗?
就是<body></body>之间的内容啊。
JAVA的做法:
先用HttpClient或者其他手段读取Response流
然后:
String string = "aaaaa<body>Hello World</body>bbb";
String start = "<body>";
String end = "</body>";
int s = string.indexOf(start) + start.length();
int e = string.indexOf(end);
System.out.println(string.substring(s, e));
另外一些开源的HTML解析方案也可能更方便高效的达到要求
tcmis(难道你忘了吗?) ( )
---------
我有很多网页,要将所有的网页中的<body></body>之间的内容取出来,如果用你的方法,怎么指定文件名呢?
loveyt(咆哮的独角兽^大家都在长大)
------------
如果<body>标签是<body leftmargin="0" topmargin="0">这种形式呢?那这种方法就不行吧?
<script>
var str="sdff<body leftmargin=/"0/" topmargin=/"0/">这种形式呢?那这种方法就不行吧?</body>sdfasdsdff<body>这种形式呢?那这种方法就不行吧?</body>sdfasdsdff<body leftmargin=/"0/" topmargin=/"0/">这种形式呢?那这种方法就不行吧?</body>sdfasd";
str=str.replace(/.*?<body.*?>(.*?)/body>/g,"$1");
alert(str);
</script>
lip009(深蓝忧郁) ( )
---------------
您帮我解决过很多问题,十分感谢您!
您给我的代码用<script>完全正确,可是当用java方法时,我写的代码如下:
str=str.replace(/.*?<body.*?>(.*?)/body>/g,"$1");
out.print(str);
就提示出错:
Generated servlet error:
[javac] D:/Tomcat/work/Catalina/localhost/webeditor/org/apache/jsp/abc_jsp.java:94: illegal start of expression
[javac] str.replace(/.*?<body.*?>(.*?)/body>/g,"$1");
[javac] ^
Generated servlet error:
[javac] D:/Tomcat/work/Catalina/localhost/webeditor/org/apache/jsp/abc_jsp.java:94: illegal character: /92
[javac] str.replace(/.*?<body.*?>(.*?)/body>/g,"$1");
[javac] ^
Generated servlet error:
[javac] D:/Tomcat/work/Catalina/localhost/webeditor/org/apache/jsp/abc_jsp.java:94: ')' expected
[javac] str.replace(/.*?<body.*?>(.*?)/body>/g,"$1");
[javac] ^
[javac] 3 errors
是不是用java的话,要改一下阿?
JAVA版本:
str=str.replaceAll(".*?<body.*?>(.*?)//body>","$1");
out.print(str);
正则高手。顶!