2017-03-08 84 views
1

我需要一些HTML标签的工作(删除)如何从BIG HTML字符串中删除一些标签?

这个HTML保存为.txt到我的应用程序的资产文件夹

这个HTML是如此之大(如7.000+线)是我不能” t将其存储到一个简单的字符串变种...

我使用此代码中的.txt转换为一个ArrayList:

InputStream is; 

try { 
    is = getAssets().open("html.txt"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

String strLine; 

List<String> stringList = new ArrayList<>(); 
try { 
    while ((strLine = br.readLine()) != null) { 
     stringList.add(strLine); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

这样一来,我想每一行从.TXT HTML是存储为stringList的元素......但我怎么能重新移动想要的标签,因为它的开始和结束可能在不同的行中?

如果这是不可能的,我想知道这个问题的任何解决方法...在此先感谢!

编辑:

我要让就像从页面移除所有链接,像<a href="url"><a>

也修改,我想删除标签<title> ...恢复:那些AREN” t很大的修改...

我已经在我的一个项目中使用JSoup ...但它只是将HTML存储为Document ...要处理标记,作为Document类型中的HTML是值得的?我怎样才能转换JSoup文档中的.txt文件?

+1

您确定无法将HTML存储在字符串中吗?线条不是一个度量标准。它有多少个字节或字符?发布示例HTML,显示您想要进行的移除类型? –

+1

JSoup是一个用于解析html内容的库:https://jsoup.org/ – jlordo

+0

@GeoffreyWiseman是的我确定,.txt文件有500KB和492.746个字符......编译器说'error:constant string too long'我将发布一个示例 –

回答

1

假设你真的无法将它全部存储在一个大字符串中(或者你不想),提取可能跨越行的内容将是一个问题,是的。

而不是跳到一个字符串列表,你有没有考虑过看HTML解析器,理想情况下支持流和修改?

您可能会考虑HTML解析器的原因是,手动搜索HTML标签可能无法考虑您可能遇到的所有潜在情况(将HTML标签和其他HTML解析器可以处理的内容注释掉)。

相关问题