首页 > 编程知识 正文

java代码示例,python代码示例

时间:2023-05-05 12:12:38 阅读:218651 作者:933

import org.jsoup.nodes.Node; //导入方法依赖的package包/类

private void parseObjectives(final Quest quest, final Element mainContainer, final Element questName) {

// Objectives section

Node objectivesNode = questName.nextSibling();

// Objectives text is the first non-empty text node immediately following the header

while (!(objectivesNode instanceof TextNode) || ((TextNode) objectivesNode).text().trim().isEmpty()) {

objectivesNode = objectivesNode.nextSibling();

}

final Node beforeObjectives = objectivesNode.previousSibling();

// If there is a h2.heading-size-3 right before the "objectives" text, it is probably not objectives,

// but rather progress or completion, like on the quest "Draenei Tail"

if (!(beforeObjectives instanceof Element && ((Element) beforeObjectives).tagName().equals("h2")

&& ((Element) beforeObjectives).hasClass("heading-size-3"))) {

quest.setObjectives(((TextNode) objectivesNode).text().trim());

}

// Objective completion stages

final Elements iconlists = mainContainer.select("table.iconlist");

final Element stagesTable = iconlists.first();

if (stagesTable != null) {

// Remove any subtables

stagesTable.select("table.iconlist").remove();

for (final Element stageLink : stagesTable.getElementsByTag("a")) {

// Find the innermost td element enclosing the a, and add its whole text

Element parent = stageLink.parent();

while (!parent.tagName().equals("td")) {

parent = parent.parent();

}

quest.getStages().add(parent.text());

}

// Suggested players

final Element suggestedPlayers = stagesTable.getElementsContainingOwnText("Suggested players:").first();

if (suggestedPlayers != null) {

String playerCountStr =

getRegexGroup(suggestedPlayers.ownText(), "Suggested players: ([0-9]+)", 1).get();

quest.setGroupSize(Integer.parseInt(playerCountStr));

}

}

// Provided items

if (iconlists.size() >= 2) {

final Element maybeProvided = iconlists.get(1);

final Node before = maybeProvided.previousSibling();

if (before instanceof TextNode && ((TextNode) before).text().contains("Provided")) {

maybeProvided.select("table.iconlist").remove();

for (final Element itemLink : maybeProvided.getElementsByTag("a")) {

quest.getProvidedItems().add(itemLink.text());

}

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。