use of org.jsoup.nodes.Node in project flow by vaadin.
the class JsoupUtils method removeCommentsRecursively.
/**
* Removes all comments from the {@code node} tree.
*
* @param node
* a Jsoup node
*/
static void removeCommentsRecursively(Node node) {
int i = 0;
while (i < node.childNodeSize()) {
Node child = node.childNode(i);
if (child instanceof Comment) {
child.remove();
} else {
removeCommentsRecursively(child);
i++;
}
}
}
use of org.jsoup.nodes.Node in project zrlog by 94fzb.
the class ParseUtil method autoDigest.
public static String autoDigest(String str, int size) {
StringBuilder sb = new StringBuilder();
Document document = Jsoup.parseBodyFragment(str);
List<Node> allTextNode = new ArrayList<>();
getAllTextNode(document.childNodes(), allTextNode);
int tLength = 0;
for (Node node : allTextNode) {
if (node instanceof TextNode) {
sb.append(node.parent().outerHtml());
tLength += ((TextNode) node).text().length();
if (tLength > size) {
sb.append(" ...");
break;
}
}
}
String digest = sb.toString();
Elements elements = Jsoup.parse(str).body().select("video");
if (elements != null && !elements.isEmpty()) {
digest = elements.get(0).toString() + "<br/>" + digest;
}
return digest.trim();
}
use of org.jsoup.nodes.Node in project pratilipi by Pratilipi.
the class PratilipiDocUtil method _setPage.
private static void _setPage(Long pratilipiId, PratilipiContentDoc.Page page, String html) throws InvalidArgumentException, UnexpectedServerException {
// Deleting Existing Pagelets
page.deleteAllPagelets();
// Adding Pagelets from HTML
if (html != null && !html.trim().isEmpty()) {
Node body = Jsoup.parse(html).body();
Node badNode = _validateContent(body);
if (badNode != null) {
String errMsg = "";
while (badNode != body) {
errMsg = " > " + badNode.nodeName() + errMsg;
badNode = badNode.parent();
}
errMsg = "Invalid node " + errMsg;
throw new InvalidArgumentException(errMsg);
}
for (Node node : body.childNodes()) {
if (node.nodeName().equals("p")) {
if (node.childNodeSize() == 1 && node.childNode(0).nodeName().equals("img")) {
JsonObject imgData = _createImageData(pratilipiId, node.childNode(0));
if (imgData != null)
page.addPagelet(PageletType.IMAGE, imgData);
} else {
page.addPagelet(PageletType.HTML, ((Element) node).html(), _getAlignment(node));
}
} else if (node.nodeName().equals("img")) {
JsonObject imgData = _createImageData(pratilipiId, node);
if (imgData != null)
page.addPagelet(PageletType.IMAGE, imgData);
} else if (node.nodeName().equals("blockquote")) {
page.addPagelet(PageletType.BLOCK_QUOTE, ((Element) node).html());
} else if (node.nodeName().equals("ol")) {
page.addPagelet(PageletType.LIST_ORDERED, ((Element) node).html());
} else if (node.nodeName().equals("ul")) {
page.addPagelet(PageletType.LIST_UNORDERED, ((Element) node).html());
}
}
}
}
use of org.jsoup.nodes.Node in project mylyn.docs by eclipse.
the class RemoveExcessiveStylesProcessor method removeElementPreserveChildren.
private void removeElementPreserveChildren(Element element) {
final Element parent = element.parent();
for (Node child : new ArrayList<Node>(element.childNodes())) {
child.remove();
element.before(child);
}
element.remove();
if (parent != null) {
normalizeTextNodes(parent);
}
}
use of org.jsoup.nodes.Node in project AozoraEpub3 by hmdev.
the class WebAozoraConverter method _printNode.
/**
* ノードを出力 再帰用
*/
private void _printNode(BufferedWriter bw, Node parent) throws IOException {
for (Node node : parent.childNodes()) {
if (startElement != null) {
if (node.equals(startElement)) {
startElement = null;
continue;
}
if (node instanceof Element)
_printNode(bw, node);
continue;
}
if (endElement != null && node.equals(endElement)) {
return;
}
if (node instanceof TextNode)
printText(bw, ((TextNode) node).getWholeText());
else if (node instanceof Element) {
Element elem = (Element) node;
if ("br".equals(elem.tagName())) {
if (elem.nextSibling() != null)
bw.append('\n');
} else if ("div".equals(elem.tagName())) {
if (elem.previousSibling() != null && !isBlockNode(elem.previousSibling()))
bw.append('\n');
// 子を出力
_printNode(bw, node);
if (elem.nextSibling() != null)
bw.append('\n');
} else if ("p".equals(elem.tagName())) {
if (elem.previousSibling() != null && !isBlockNode(elem.previousSibling()))
bw.append('\n');
// 子を出力
_printNode(bw, node);
if (elem.nextSibling() != null)
bw.append('\n');
} else if ("ruby".equals(elem.tagName())) {
// ルビ注記出力
printRuby(bw, elem);
} else if ("img".equals(elem.tagName())) {
// 画像をキャッシュして注記出力
printImage(bw, elem);
} else if ("hr".equals(elem.tagName()) && !this.noHr) {
bw.append("[#区切り線]\n");
} else if ("b".equals(elem.tagName())) {
bw.append("[#ここから太字]");
// 子を出力
_printNode(bw, node);
bw.append("[#ここで太字終わり]");
} else if ("sup".equals(elem.tagName())) {
bw.append("[#上付き小文字]");
// 子を出力
_printNode(bw, node);
bw.append("[#上付き小文字終わり]");
} else if ("sub".equals(elem.tagName())) {
bw.append("[#下付き小文字]");
// 子を出力
_printNode(bw, node);
bw.append("[#下付き小文字終わり]");
} else if ("strike".equals(elem.tagName()) || "s".equals(elem.tagName())) {
bw.append("[#取消線]");
// 子を出力
_printNode(bw, node);
bw.append("[#取消線終わり]");
} else if ("tr".equals(elem.tagName())) {
// 子を出力
_printNode(bw, node);
bw.append('\n');
} else {
// 子を出力
_printNode(bw, node);
}
} else {
System.out.println(node.getClass().getName());
}
}
}
Aggregations