Я обработал код, чтобы прочитать весь контент из 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>');
Теперь мне нужно получить значение 1254.56, используя String "S & P Midcap 400 Index".
Есть ли какой-либо метод для соответствия тексту? Помощь приветствуется.... :)
Может использовать регулярное выражение для таких сценариев
Вот решение для вашего вопроса
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
}
благодаря
Я боюсь, что здесь нет ничего, что можно сделать с Jsoup, потому что текст, который вам нужно извлечь, находится внутри узла сценария, поэтому это не HTML, с которым Jsoup имеет дело, это JavaScript.
Что можно сделать
Что касается примера Jsoup, нет необходимости создавать TextNode из html. Вы получаете дерево в doc.body(), а затем перемещаетесь с помощью Jsoup API: селектора CSS или методы дерева API (дети, сначала и т.д.).