1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | package Torello.HTML.NodeSearch.searchLoops; import java.util.Vector; import Torello.HTML.*; import Torello.Java.LV; import java.util.stream.IntStream; public class TNRemove { public static int nth (Vector<? extends HTMLNode> html, int nth, LV l, TC tagCriteria, String... htmlTags) { HTMLNode n; for (int i = l.start; i < l.end; i++) if ( ((n = html.elementAt(i)).isTagNode()) && (((TagNode) n).isTag(tagCriteria, htmlTags)) && (--nth == 0) ) { html.removeElementAt(i); return 1; } return 0; } public static int nthFromEnd (Vector<? extends HTMLNode> html, int nth, LV l, TC tagCriteria, String... htmlTags) { HTMLNode n; for (int i = l.end-1; i >= l.start; i--) if ( ((n = html.elementAt(i)).isTagNode()) && (((TagNode) n).isTag(tagCriteria, htmlTags)) && (--nth == 0) ) { html.removeElementAt(i); return 1; } return 0; } public static int all (Vector<? extends HTMLNode> html, LV l, TC tagCriteria, String... htmlTags) { Vector<TagNode> ret = new Vector<>(); IntStream.Builder b = IntStream.builder(); HTMLNode n; for (int i = l.start; i < l.end; i++) if ((n = html.elementAt(i)).isTagNode()) if (((TagNode) n).isTag(tagCriteria, htmlTags)) b.accept(i); // Remove the nodes out of the original page. int[] removeArr = b.build().toArray(); Util.removeNodesOPT(html, removeArr); return removeArr.length; } public static int allExcept (Vector<? extends HTMLNode> html, LV l, TC tagCriteria, String... htmlTags) { Vector<TagNode> ret = new Vector<>(); IntStream.Builder b = IntStream.builder(); HTMLNode n; for (int i = l.start; i < l.end; i++) if ((n = html.elementAt(i)).isTagNode()) if (((TagNode) n).isTagExcept(tagCriteria, htmlTags)) b.accept(i); // Remove the nodes out of the original page. int[] removeArr = b.build().toArray(); Util.removeNodesOPT(html, removeArr); return removeArr.length; } } |