下面列出了org.jsoup.nodes.Node#attr ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private boolean unlikely(Node e) {
if (e.attr("class") != null && e.attr("class").toLowerCase().contains("caption"))
return true;
String style = e.attr("style");
String clazz = e.attr("class");
return unlikelyPattern.matcher(style).find() || unlikelyPattern.matcher(clazz).find();
}
private boolean unlikely(Node e) {
if (e.attr("class") != null && e.attr("class").toLowerCase().contains("caption"))
return true;
String style = e.attr("style");
String clazz = e.attr("class");
return unlikelyPattern.matcher(style).find() || unlikelyPattern.matcher(clazz).find();
}
public void parseCollegeYears(String rawHtml, Setting setting) {
Element doc = Jsoup.parse(rawHtml).getElementById("xnd");
for (Node yearNode : doc.childNodes()) {
if (yearNode.hasAttr("value")) {
setting.ownYears.add(yearNode.attr("value"));
if (yearNode.hasAttr("selected")) {
setting.currentYear = yearNode.attr("selected");
}
}
}
}
public void parseCollegeTerms(String rawHtml, Setting setting) {
Element doc = Jsoup.parse(rawHtml).getElementById("xqd");
for (Node yearNode : doc.childNodes()) {
if (yearNode.hasAttr("value")) {
setting.ownTerms.add(yearNode.attr("value"));
if (yearNode.hasAttr("selected")) {
setting.currentTerm = yearNode.attr("selected");
}
}
}
}
private void appendHtml(StringBuilder sb, Node node) {
for (Node childNode : node.childNodes()) {
switch (childNode.nodeName()) {
case PARAGRAPH_NODE:
sb.append(NEW_LINE);
appendHtml(sb, childNode);
break;
case ORDERED_LIST_NODE:
case UN_ORDERED_LIST_NODE:
appendHtml(sb, childNode);
break;
case LIST_ITEM_NODE:
final String marker = childNode.parent().nodeName().equals(ORDERED_LIST_NODE)
? ORDERED_LIST_ITEM_ASCIDOC_STYLE
: UNORDERED_LIST_ITEM_ASCIDOC_STYLE;
sb.append(NEW_LINE);
sb.append(marker);
appendHtml(sb, childNode);
break;
case LINK_NODE:
final String link = childNode.attr(HREF_ATTRIBUTE);
sb.append("link:");
sb.append(link);
final StringBuilder caption = new StringBuilder();
appendHtml(caption, childNode);
sb.append(String.format(LINK_ATTRIBUTE_FORMAT, caption.toString().trim()));
break;
case CODE_NODE:
sb.append(BACKTICK);
appendHtml(sb, childNode);
sb.append(BACKTICK);
break;
case BOLD_NODE:
case EMPHASIS_NODE:
sb.append(STAR);
appendHtml(sb, childNode);
sb.append(STAR);
break;
case ITALICS_NODE:
sb.append(UNDERSCORE);
appendHtml(sb, childNode);
sb.append(UNDERSCORE);
break;
case UNDERLINE_NODE:
sb.append(UNDERLINE_ASCIDOC_STYLE);
sb.append(HASH);
appendHtml(sb, childNode);
sb.append(HASH);
break;
case SMALL_NODE:
sb.append(SMALL_ASCIDOC_STYLE);
sb.append(HASH);
appendHtml(sb, childNode);
sb.append(HASH);
break;
case BIG_NODE:
sb.append(BIG_ASCIDOC_STYLE);
sb.append(HASH);
appendHtml(sb, childNode);
sb.append(HASH);
break;
case SUB_SCRIPT_NODE:
sb.append(SUB_SCRIPT_ASCIDOC_STYLE);
appendHtml(sb, childNode);
sb.append(SUB_SCRIPT_ASCIDOC_STYLE);
break;
case SUPER_SCRIPT_NODE:
sb.append(SUPER_SCRIPT_ASCIDOC_STYLE);
appendHtml(sb, childNode);
sb.append(SUPER_SCRIPT_ASCIDOC_STYLE);
break;
case DEL_NODE:
case S_NODE:
case STRIKE_NODE:
sb.append(LINE_THROUGH_ASCIDOC_STYLE);
sb.append(HASH);
appendHtml(sb, childNode);
sb.append(HASH);
break;
case NEW_LINE_NODE:
sb.append(NEW_LINE);
break;
case TEXT_NODE:
appendEscapedAsciiDoc(sb, ((TextNode) childNode).text());
break;
default:
appendHtml(sb, childNode);
break;
}
}
}
private void updateMentionUidToEmail(SymphonyClient symClient, List<Node> nodesList) {
for (Node node : nodesList) {
String nodeName = node.nodeName();
if (nodeName.equalsIgnoreCase(NodeTypes.MENTION.toString())) {
if (node.attributes().hasKey(AttribTypes.UID.toString())) {
String uid = node.attr(AttribTypes.UID.toString());
SymUser user = null;
try {
user = symClient.getUsersClient().getUserFromId(Long.parseLong(uid));
logger.info("Translated mention uid {} to email {}", uid, user.getEmailAddress());
} catch (UsersClientException e) {
logger.error("Could not identify user email from id", e);
}
if (user != null && user.getEmailAddress() != null) {
uid = user.getEmailAddress();
}
Attribute emailAttribute = new Attribute(AttribTypes.EMAIL.toString(), uid);
node.attributes().put(emailAttribute);
node.removeAttr(AttribTypes.UID.toString());
}
}
updateMentionUidToEmail(symClient, node.childNodes());
}
}