我正在尝试解析一个站点的项目。我达到了目标,但我失去了很多信息,因为我不能用我的方法解析它。现在,在JSOUP API之后我将符号替换为用于创建特定格式的标记,我可以使用它来按标记进行迭代并将它们排序到数组。
因此,行动链:jsoup html > jsoup text > string replaces > jsoup html
。
我认为我用文字做的一切都很容易用JSOUP做。但是,不幸的是,我是这个库的新手,无法正确使用它。
现在如何运作。我有一个字符串。如果我使用html(),我会看到:
<i>Требования:</i>
<br>
<i>Эффект:</i>
<br>- Увеличивает МА: 45
<br>- Увеличивает ФЗ: 57
<br>- Увеличивает МЗ: 57
<br>- Увеличивает Земля: 15
<br>- Увеличивает Воздух: 15
<br>- Увеличивает Вода: 15
<br>- Увеличивает Огонь: 15
<br>- Срок жизни: 720
<br>
如果我使用text(),那么结果将是:
Требования: Эффект: - Увеличивает МА: 45 - Увеличивает ФЗ: 57 - Увеличивает МЗ: 57 - Увеличивает Земля: 15 - Увеличивает Воздух: 15 - Увеличивает Вода: 15 - Увеличивает Огонь: 15 - Срок жизни: 720
我使用一堆替换来获取某些东西,我可以迭代
String htmlAddMoreBR = html.replace("\t\t","<br>");
String htmlAddClass = htmlAddMoreBR.replace("<br>- ","</span><span class=\"item\">");
String htmlReplaceI = htmlAddClass.replace("<i>","</span><span class=\"group\">");
String htmlDeleteBR = htmlReplaceI.replace("<br>","");
String htmlReplaceStrongOpen = htmlDeleteBR.replace("<strong>","<span class=\"item\">");
String htmlReplaceStrongClose = htmlReplaceStrongOpen.replace("</strong>","</span>");
String htmlRemoveSec = htmlReplaceStrongClose.replace(" сек.","");
String htmlRemoveMeters = htmlRemoveSec.replace(" м.","");
String htmlReplaceСommaToDots = htmlRemoveMeters.replace(",",".");
Document document = Jsoup.parse(htmlReplaceСommaToDots);
Elements elements = document.select("span");
我的替换结果
</span><span class="group">Требования:</i>
</span><span class="group">Эффект:</i>
</span><span class="item">Увеличивает МА: 45
</span><span class="item">Увеличивает ФЗ: 57
</span><span class="item">Увеличивает МЗ: 57
</span><span class="item">Увеличивает Земля: 15
</span><span class="item">Увеличивает Воздух: 15
</span><span class="item">Увеличивает Вода: 15
</span><span class="item">Увеличивает Огонь: 15
</span><span class="item">Срок жизни: 720
我创建了3个HashMaps optReqList , effList , currentList (oups,忘记更改名称,nvm)。如果我得到要求关键字,然后currentList = optReqList
,如果得到 EFFECTS 关键字,然后是currentList = effList
,则按迭代迭代,否则推送到currentList新项目,我发现他们的关键词。
它有效。但!这种替换方法不允许我解析级别, desc 和 comp [] 。而且代码也很脏。
** 示例,我的替换不起作用。
<i>Набор предметов для 3 уровня специализации "Инквизитор". Дешевле на 25%, чем тот же набор, покупаемый по отдельности.</i>
<br>
<i>Состав:</i>
<ul>
<li>Клепанный шлем Инквизитора</li>
<li>Клепанный пояс Трибунала</li>
</ul>
<br>
<br>
替换结果。
</span><span class="group">Набор предметов для 3 уровня специализации "Инквизитор". Дешевле на 25%. чем тот же набор. покупаемый по отдельности.</i>
</span><span class="group">Состав:</i>
<ul>
<li>Клепанный шлем Инквизитора</li>
<li>Клепанный пояс Трибунала</li>
</ul>
我真的需要你的帮助。 如何使用JSOUP正确解析所有项目,如下图所示?
<strong>Item:Level</strong>
<i>Description. Bunch of text here.</i>
<br>
<i>Composition</i>
<ul>
<li>Item1</li>
<li>Item2</li>
</ul>
<br>
<i>Requirements:</i>
<br>
- Item1Name:Item1Value
<br>
- Item2Name:Item2Value
<br>
- Item3Name:Item3Value
<br>
<i>Effect:</i>
<br>
- Item1Name:Item1Value
<br>
- Item2Name:Item2Value
<br>
- Item3Name:Item3Value
<br>
- Item4Name:Item4Value
<br>
此外,我还创建了文档,以便更好地理解此项目的图像和代码之间的关系。 Google Docs Document. Examples.和存储库:SimpleParserGamexp,包含完整的源代码。