[英]How to read the particular string value using JSoup
我已经处理了从HTML读取全部内容的代码。
URL url = new URL("https://idms.sunamerica.com/v2/market/home.idms");
Document doc = Jsoup.parse(url, 5*1000);
TextNode tn = new TextNode(doc.body().html(), "");
String entireText = tn.getWholeText();
现在WholeText包含以下文本
<tr class="evenrow" onmouseover="loadMiniChart(\'S&P Midcap 400\',8318990,\'market_mini_chart\')">
'); document.write('
<td>
<div align="left">
S&P Midcap 400 Index
</div></td>'); document.write('
<td>1254.56</td>'); document.write('
<td><span class="negative">-2.83</span></td>'); document.write('
</tr>');
现在,我需要使用字符串“ S&P Midcap 400 Index”获取值1254.56。
有什么方法可以匹配文本? 感谢您的帮助。...:)
恐怕在这里用Jsoup无法做很多事情,因为您需要提取的文本在脚本节点内部,因此Jsoup处理的不是HTML,而是JavaScript。
可以做的是
关于您的Jsoup示例,不需要从html创建TextNode。 您可以在doc.body()中获取树,然后使用Jsoup API进行导航:CSS选择器或树API方法(子类,第一个等)。
可以在这种情况下使用正则表达式
这是您问题的解决方案
String ResultString = null;
try {
Pattern regex = Pattern.compile("<td>\\d+.\\d+</td>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
ResultString = regexMatcher.group();
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.