2013-04-20 89 views
1

我解析一个网页,需要获取滑块元素的最小值和最大值。我用Jsoup解析所有的页面,但是这个值我不能得到它..他们在JavaScript块。如何从Java中的HTML代码获取JavaScript代码的子字符串?

<script> 
    $(function(){ $("#p_slider").slider({ range:true, step:1000, min:2000, max:49490.00, values:[2000,49490.00], slide:function(event, ui) { 
    $("#p_from").val((ui.values[0] != 2000)?ui.values[0]:""); 
    $("#p_to").val((ui.values[1] != 49490.00)?ui.values[1]:""); 
    $("#p_from").change(); 
    $("#p_to").change(); 
} }); }); 
</script> 
<script> 
    $(function() { $("#filter_543_slider").slider({ range:true, step:1000, min:0, max:17600.000, values:[0,17600.000], slide:function(event, ui) { 
        $("#f543_from").val((ui.values[0] != 0)?ui.values[0]:""); 
        $("#f543_to").val((ui.values[1] != 17600.000)?ui.values[1]:""); 
        $("#f543_from").change(); 
        $("#f543_to").change(); 
       } }); }); 
</script> 

我需要得到最小值和最大值为#p_slider和#filter_543_slider

现在,我尝试使用此代码:

String min = bodyHTML.split("[$(\"#"+searchingIdent+"\").slider({]")[1].split("[min:]")[1].split(",")[0]; 
String max = bodyHTML.split("[$(\"#"+searchingIdent+"\").slider({]")[1].split("[max:]")[1].split(",")[0]; 

但是我赶上错误:错误:长度= 1;指数= 1

而这种分裂得到太多的时间.. + 5-10秒

请告诉我如何获取所需子正确和快速。

对不起,我的英语。

回答

1

我会推荐使用正则表达式。我在这里写了这一个给你:

\$\("#([a-z0-9_]+)"\)\.slider\([^\)]+min:([0-9\.]+)[^\)]+max:([0-9\.]+) 

这一个检查这需要一个ID(或更好的#号),之后就是一个滑块功能,其中的参数的最小值和最大值都在里面一个jQuery线。

也试试这个fiddler检查我的结果。

第一个结果是id,第二个是min值,第三个是最大值。

+0

谢谢你!奇迹般有效! – 2013-04-21 19:30:33