如果您有一个HTML页面存储在String ArrayList中,并且您想要读取某个类类型的整个<div>
标记,那么如何读取下一行以便它到达div的末尾标记
for (String l : line) {
if (l.contains("<div class=\"somne_class\">"){
//read the next n strings in ArrayList until </div> tag is reached
}
答案 0 :(得分:1)
通常,将HTML文件存储为原始字符串列表是个坏主意。为什么要以这种方式存储它?
想象一下,你有<div id="outer_div"><div id=""inner_div>Hei!</div></div>
之类的字符串。在这里,您在一行中有多个嵌套的HTML标记,因此您不会轻易获得结束标记。
考虑使用HTML解析器,然后您可以按类型或属性获取所需的标记。 Java中有很多HTML解析器。其中最受欢迎的是jsoup。
答案 1 :(得分:1)
我同意弗拉基米尔,你可能正在寻找 HTML解析器。
要回答帖子中的确切问题:要简单地找到下一个</div>
标记,您可以使用 for循环而不是 foreach循环。
for (int i = 0; i < line.size(); ++i) {
String l = line.get(i);
if (l.contains("<div class=\"somne_class\">") {
for (int j = i; j < line.size(); ++j) {
String l2 = line.get(j);
if (l2.contains("</div>")) {
// l2 is the next line that contains a </div> tag
}
}
}
}
请注意,即使您假设每个标记位于不同的行中,此也可能不是开头标记的匹配结束标记。
答案 2 :(得分:0)