Java JSoup:提取文本并将其存储在多个变量中
我有以下情况: 我想提取“span”标记之间的所有文本 我希望它像这样存储:Java JSoup:提取文本并将其存储在多个变量中,java,android,html,jsoup,Java,Android,Html,Jsoup,我有以下情况: 我想提取“span”标记之间的所有文本 我希望它像这样存储: A = 1,5,9,13 B = 2,6,10,14 C = 3,7,11,15 D = 4,8,12,16 请给我一些建议如何做到这一点。谢谢,节日快乐 编辑--------------------------------- 我有一个想法: if (exa != null) { for (int i = 0; i < exa.size(); i++) { A[i] = exa.get(0).text(); B
A = 1,5,9,13
B = 2,6,10,14
C = 3,7,11,15
D = 4,8,12,16
请给我一些建议如何做到这一点。谢谢,节日快乐
编辑---------------------------------
我有一个想法:
if (exa != null) {
for (int i = 0; i < exa.size(); i++) {
A[i] = exa.get(0).text();
B[i] = exa.get(1).text();
C[i] = exa.get(2).text();
D[i] = exa.get(3).text();
}
}
它重复前4个跨距
我怎样才能至少得到:
A = 1,2,3,4
B = 5,6,7,8
C = 9,10,11,12
D = 13,14,15,16
使用字符串
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
String A = "", B = "", C = "", D = "";
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements spans = ul.select("span");
A += spans.get(0).text() + ",";
B += spans.get(1).text() + ",";
C += spans.get(2).text() + ",";
D += spans.get(3).text() + ",";
}
A = A.substring(0, A.length() - 1);
B = B.substring(0, B.length() - 1);
C = C.substring(0, C.length() - 1);
D = D.substring(0, D.length() - 1);
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
} catch(Exception e) {
e.printStackTrace();
}
}
publicstaticvoidmain(String…args)抛出IOException{
试一试{
String text=“- 1
- 2
- 3
- 4
5 6 7 8- 9
- 10
- 11
- 12
使用StringBuilder
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
StringBuilder A = new StringBuilder(), B = new StringBuilder(), C = new StringBuilder(), D = new StringBuilder();
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements spans = ul.select("span");
A.append(spans.get(0).text() + ",");
B.append(spans.get(1).text() + ",");
C.append(spans.get(2).text() + ",");
D.append(spans.get(3).text() + ",");
}
A.deleteCharAt(A.length() - 1);
B.deleteCharAt(B.length() - 1);
C.deleteCharAt(C.length() - 1);
D.deleteCharAt(D.length() - 1);
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
} catch(Exception e) {
e.printStackTrace();
}
}
publicstaticvoidmain(String…args)抛出IOException{
试一试{
String text=“- 1
- 2
- 3
- 4
5 6 7 8- 9
- 10
- 11
- 12
编辑
这种行为的原因是因为您使用了=而不是+=所以您覆盖了以前的值。
也许这就是你想要的
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
ArrayList<String> A = new ArrayList<String>(), B = new ArrayList<String>(), C = new ArrayList<String>(), D = new ArrayList<String>();
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements lis = ul.select("span");
A.add(lis.get(0).text());
B.add(lis.get(1).text());
C.add(lis.get(2).text());
D.add(lis.get(3).text());
}
for(String str : A) {
System.out.print(str + " ");
} System.out.println("");
for(String str : B) {
System.out.print(str + " ");
} System.out.println("");
for(String str : C) {
System.out.print(str + " ");
} System.out.println("");
for(String str : D) {
System.out.print(str + " ");
} System.out.println("");
} catch(Exception e) {
e.printStackTrace();
}
}
publicstaticvoidmain(String…args)抛出IOException{
试一试{
String text=“- 1
- 2
- 3
- 4
5 6 7 8- 9
- 10
- 11
- 12
嗯?也许你可以详细说明一下?我提供的代码与你描述的完全一样。那么,问题出在哪里呢?检查新的部分。你没有说你想要数组。检查我的更新。等等。你所做的毫无意义。exa大小是您的跨距数。你所做的是完全错误的。
A = 1,2,3,4
B = 5,6,7,8
C = 9,10,11,12
D = 13,14,15,16
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
String A = "", B = "", C = "", D = "";
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements spans = ul.select("span");
A += spans.get(0).text() + ",";
B += spans.get(1).text() + ",";
C += spans.get(2).text() + ",";
D += spans.get(3).text() + ",";
}
A = A.substring(0, A.length() - 1);
B = B.substring(0, B.length() - 1);
C = C.substring(0, C.length() - 1);
D = D.substring(0, D.length() - 1);
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
StringBuilder A = new StringBuilder(), B = new StringBuilder(), C = new StringBuilder(), D = new StringBuilder();
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements spans = ul.select("span");
A.append(spans.get(0).text() + ",");
B.append(spans.get(1).text() + ",");
C.append(spans.get(2).text() + ",");
D.append(spans.get(3).text() + ",");
}
A.deleteCharAt(A.length() - 1);
B.deleteCharAt(B.length() - 1);
C.deleteCharAt(C.length() - 1);
D.deleteCharAt(D.length() - 1);
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String... args) throws IOException {
try {
String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
ArrayList<String> A = new ArrayList<String>(), B = new ArrayList<String>(), C = new ArrayList<String>(), D = new ArrayList<String>();
Document page = Jsoup.parse(text, "UTF-8");
Elements uls = page.select(".examplediv ul");
for(Element ul : uls) {
Elements lis = ul.select("span");
A.add(lis.get(0).text());
B.add(lis.get(1).text());
C.add(lis.get(2).text());
D.add(lis.get(3).text());
}
for(String str : A) {
System.out.print(str + " ");
} System.out.println("");
for(String str : B) {
System.out.print(str + " ");
} System.out.println("");
for(String str : C) {
System.out.print(str + " ");
} System.out.println("");
for(String str : D) {
System.out.print(str + " ");
} System.out.println("");
} catch(Exception e) {
e.printStackTrace();
}
}