本文整理汇总了Java中org.htmlcleaner.ContentNode类的典型用法代码示例。如果您正苦于以下问题:Java ContentNode类的具体用法?Java ContentNode怎么用?Java ContentNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ContentNode类属于org.htmlcleaner包,在下文中一共展示了ContentNode类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleContent
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private void handleContent(SpannableStringBuilder builder, Object node,
SpanStack stack, CancellationCallback cancellationCallback ) {
checkForCancellation(cancellationCallback);
ContentNode contentNode = (ContentNode) node;
String text = TextUtil.replaceHtmlEntities(
contentNode.getContent().toString(), false);
if ( isStripExtraWhiteSpace() ) {
//Replace unicode non-breaking space with normal space.
text = text.replace( '\u00A0', ' ' );
}
if ( text.trim().length() > 0 ) {
builder.append(text);
}
}
示例2: getPlainText
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private void getPlainText(StringBuffer buffer, Object node) {
if (node instanceof ContentNode) {
ContentNode contentNode = (ContentNode) node;
String text = TextUtil.replaceHtmlEntities(contentNode.getContent()
.toString(), true);
buffer.append(text);
} else if (node instanceof TagNode) {
TagNode tagNode = (TagNode) node;
for (Object child : tagNode.getAllChildren()) {
getPlainText(buffer, child);
}
}
}
示例3: handleTagNode
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
@Override
public void handleTagNode(TagNode node, SpannableStringBuilder builder, int start, int end, SpanStack spanStack) {
if ( getSpanner().isAllowStyling() ) {
if ( node.getAllChildren().size() == 1 ) {
Object childNode = node.getAllChildren().get(0);
if ( childNode instanceof ContentNode ) {
parseCSSFromText( ( (ContentNode) childNode ).getContent(),
spanStack );
}
}
}
}
示例4: checkStyleCSS
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
final private void checkStyleCSS(TagNode node)
throws ClientProtocolException, IllegalStateException, IOException, SearchLibException, URISyntaxException {
if (!("style".equalsIgnoreCase(node.getName())))
return;
String attr = node.getAttributeByName("type");
if (!StringUtils.isEmpty(attr) && !"text/css".equalsIgnoreCase(attr))
return;
attr = node.getAttributeByName("media");
if (!StringUtils.isEmpty(attr) && !"screen".equalsIgnoreCase(attr) && !"all".equalsIgnoreCase(attr))
return;
StringBuilder builder = (StringBuilder) node.getText();
if (builder == null)
return;
String content = builder.toString();
String newContent = StringEscapeUtils.unescapeXml(content);
StringBuffer sb = checkCSSContent(baseUrl, newContent);
if (sb != null)
newContent = sb.toString();
if (newContent.equals(content))
return;
node.removeAllChildren();
node.addChild(new ContentNode(newContent));
}
示例5: checkScriptContent
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
final private void checkScriptContent(TagNode node, Set<TagNode> disableScriptNodeSet) {
if (!("script".equalsIgnoreCase(node.getName())))
return;
if (disableScriptNodeSet != null && hasAncestorXPath(disableScriptNodeSet, node)) {
node.removeFromTree();
return;
}
StringBuilder builder = (StringBuilder) node.getText();
if (builder == null)
return;
String content = builder.toString();
if (content == null)
return;
String newContent = StringEscapeUtils.unescapeXml(content);
if (newContent.equals(content))
return;
node.removeAllChildren();
node.addChild(new ContentNode(newContent));
}
示例6: getPlainText
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private void getPlainText(StringBuffer buffer, Object node) {
if (node instanceof ContentNode) {
ContentNode contentNode = (ContentNode) node;
String text = contentNode.getContent().toString();
buffer.append(text);
} else if (node instanceof TagNode) {
TagNode tagNode = (TagNode) node;
for (Object child : tagNode.getChildren()) {
this.getPlainText(buffer, child);
}
}
}
示例7: applySpan
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private void applySpan(SpannableStringBuilder builder, TagNode node, SpanStack stack,
CancellationCallback cancellationCallback) {
checkForCancellation(cancellationCallback);
TagNodeHandler handler = this.handlers.get(node.getName());
if ( handler == null ) {
handler = new StyledTextHandler();
handler.setSpanner(this);
}
int lengthBefore = builder.length();
handler.beforeChildren(node, builder, stack);
if ( !handler.rendersContent() ) {
for (Object childNode : node.getAllChildren()) {
if ( childNode instanceof ContentNode ) {
handleContent( builder, childNode, stack, cancellationCallback );
} else if ( childNode instanceof TagNode ) {
applySpan( builder, (TagNode) childNode, stack, cancellationCallback );
}
}
}
int lengthAfter = builder.length();
handler.handleTagNode(node, builder, lengthBefore, lengthAfter, stack);
}
示例8: satisfy
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private boolean satisfy(TagNode tagNode, boolean override) {
String name = tagNode.getName();
TagInfo tagInfo = tagInfoProvider.getTagInfo(name);
//Only _block_ elements can match.
if (tagInfo != null && !hasIdAttributeSet(tagNode) && none != tagInfo.getDisplay() && !tagInfo.isEmptyTag() && (override || !unsafeBlockElements.contains(name))) {
CharSequence contentString = tagNode.getText();
if(isEmptyString(contentString)) {
// even though there may be no text need to make sure all children are empty or can be pruned
if (tagNode.isEmpty()) {
return true;
} else {
for(Object child: tagNode.getAllChildren()) {
// TODO : similar check as in tagNode.isEmpty() argues for a visitor pattern
// but allow empty td, ths to be pruned.
if ( child instanceof TagNode) {
if (!satisfy((TagNode)child, true)) {
return false;
}
} else if (child instanceof ContentNode ) {
if ( !((ContentNode)child).isBlank()) {
return false;
}
} else {
return false;
}
}
return true;
}
}
}
return false;
}
示例9: satisfy
import org.htmlcleaner.ContentNode; //导入依赖的package包/类
private boolean satisfy(TagNode tagNode, boolean override) {
String name = tagNode.getName();
TagInfo tagInfo = tagInfoProvider.getTagInfo(name);
//Only _block_ elements can match.
if (tagInfo != null && !hasIdAttributeSet(tagNode) && none != tagInfo.getDisplay() && !tagInfo.isEmptyTag() && (override || !unsafeBlockElements.contains(name))) {
CharSequence contentString = tagNode.getText();
if (isEmptyString(contentString)) {
// even though there may be no text need to make sure all children are empty or can be pruned
if (tagNode.isEmpty()) {
return true;
} else {
for (Object child : tagNode.getAllChildren()) {
// TODO : similar check as in tagNode.isEmpty() argues for a visitor pattern
// but allow empty td, ths to be pruned.
if (child instanceof TagNode) {
if (!satisfy((TagNode) child, true)) {
return false;
}
} else if (child instanceof ContentNode) {
if (!((ContentNode) child).isBlank()) {
return false;
}
} else {
return false;
}
}
return true;
}
}
}
return false;
}