2017-03-08 100 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解析器可以處理的內容註釋掉)。

相關問題