2012-01-23 198 views
2

我想使用jTidy從(真實世界)HTML中提取數據。但jTidy不解析自定義標籤。如何將新標籤添加到JTidy?

<html> 
    <body> 
    <myCustomTag>some text</myCustomTag> 
    <anotherCustom>more text</anotherCustom> 
    </body> 
</html> 

我無法獲得自定義標記之間的文本。我必須使用jTidy,因爲我將使用xpath。

我試過HTMLCleaner,但它不支持完整的xpath函數。

+1

這是否解決了您的問題? – Ethan

+0

另請參見https://stackoverflow.com/questions/30374232/jtidy-pretty-print-custom-html-tag – Pino

回答

2

您也可以使用Java Properties對象,例如設置屬性:

import java.util.Properties; 
Properties oProps = new Properties(); 
oProps.setProperty("new-blocklevel-tags", "header hgroup article footer nav"); 

Tidy tidy = new Tidy(); 
tidy.setConfigurationFromProps(oProps); 

這應該節省您不必創建並加載配置文件。

2

退房http://tidy.sourceforge.net/docs/quickref.html#new-blocklevel-tags

的快速和骯髒的是創建一個文件,我將其命名jTidyTags,並呼籲:

Tidy tidy = new Tidy(); 
tidy.setConfigurationFromFile("jTidyTags"); 

之後,它會拋出一個警告,說這是不符合W3C,但誰在乎。這將讓你解析文件。

jTidyTags的例子你會:

new-blocklevel-tags: myCustomTag anotherCustom 

希望這有助於!

+0

嗨伊桑,thx答案。這是我嘗試的第一件事是「新塊級標籤」 ,但它不起作用。 – MuhammetK

+0

您是否嘗試添加其他「new-」標籤?目前我的面前沒有我的代碼。我開始工作時會看到它。 – Ethan

+0

以下是我在代碼中使用的確切線條: new-blocklevel-tags:條碼框線 – Ethan