|
6 | 6 | import org.jsoup.nodes.Document; |
7 | 7 | import org.jsoup.nodes.DocumentType; |
8 | 8 | import org.jsoup.nodes.Element; |
9 | | -import org.jsoup.nodes.Node; |
10 | 9 |
|
11 | 10 | import java.util.ArrayList; |
12 | 11 |
|
@@ -995,7 +994,7 @@ boolean process(Token t, HtmlTreeBuilder tb) { |
995 | 994 | InTable { |
996 | 995 | boolean process(Token t, HtmlTreeBuilder tb) { |
997 | 996 | if (t.isCharacter() && inSorted(tb.currentElement().normalName(), InTableFoster)) { |
998 | | - tb.newPendingTableCharacters(); |
| 997 | + tb.resetPendingTableCharacters(); |
999 | 998 | tb.markInsertionMode(); |
1000 | 999 | tb.transition(InTableText); |
1001 | 1000 | return tb.process(t); |
@@ -1106,25 +1105,25 @@ boolean process(Token t, HtmlTreeBuilder tb) { |
1106 | 1105 | tb.error(this); |
1107 | 1106 | return false; |
1108 | 1107 | } else { |
1109 | | - tb.getPendingTableCharacters().add(c.getData()); |
| 1108 | + tb.addPendingTableCharacters(c); |
1110 | 1109 | } |
1111 | | - } else {// todo - don't really like the way these table character data lists are built |
| 1110 | + } else { |
1112 | 1111 | if (tb.getPendingTableCharacters().size() > 0) { |
1113 | | - for (String character : tb.getPendingTableCharacters()) { |
1114 | | - if (!isWhitespace(character)) { |
| 1112 | + for (Token.Character c : tb.getPendingTableCharacters()) { |
| 1113 | + if (!isWhitespace(c)) { |
1115 | 1114 | // InTable anything else section: |
1116 | 1115 | tb.error(this); |
1117 | 1116 | if (inSorted(tb.currentElement().normalName(), InTableFoster)) { |
1118 | 1117 | tb.setFosterInserts(true); |
1119 | | - tb.process(new Token.Character().data(character), InBody); |
| 1118 | + tb.process(c, InBody); |
1120 | 1119 | tb.setFosterInserts(false); |
1121 | 1120 | } else { |
1122 | | - tb.process(new Token.Character().data(character), InBody); |
| 1121 | + tb.process(c, InBody); |
1123 | 1122 | } |
1124 | 1123 | } else |
1125 | | - tb.insert(new Token.Character().data(character)); |
| 1124 | + tb.insert(c); |
1126 | 1125 | } |
1127 | | - tb.newPendingTableCharacters(); |
| 1126 | + tb.resetPendingTableCharacters(); |
1128 | 1127 | } |
1129 | 1128 | tb.transition(tb.originalState()); |
1130 | 1129 | return tb.process(t); |
@@ -1759,10 +1758,6 @@ private static boolean isWhitespace(Token t) { |
1759 | 1758 | return false; |
1760 | 1759 | } |
1761 | 1760 |
|
1762 | | - private static boolean isWhitespace(String data) { |
1763 | | - return StringUtil.isBlank(data); |
1764 | | - } |
1765 | | - |
1766 | 1761 | private static void handleRcData(Token.StartTag startTag, HtmlTreeBuilder tb) { |
1767 | 1762 | tb.tokeniser.transition(TokeniserState.Rcdata); |
1768 | 1763 | tb.markInsertionMode(); |
|
0 commit comments