2010-06-11 51 views
-1

我有HTML字符串值,我想從該HTML字符串值中獲取一個屬性(id)值 你能幫我怎麼做嗎?從java中的html代碼獲取屬性值

String msHTMLFile = "<ABBR class='HighlightClass' id='highlight40001' style=\"BACKGROUND-COLOR: yellow\" >Fetal/Neonatal Morbidity and Mortality</ABBR>"; 

結果應該來 - highlight40001;

+0

這是什麼? Servlet,JSP,Applet?提供更多相關信息 – Bozho 2010-06-11 10:51:11

回答

0

嘗試使用此正則表達式模式:

\bid='([^']*)' 

然後提取由組1所拍攝的串這不是萬無一失;使用正則表達式解析HTML永遠不會。您可以嘗試使正則表達式複雜化,使其更加靈活。或者你可以使用HTML解析器。我推薦後者。

+0

再次,不推薦,但請參閱http://ideone.com/qUOMo上的示例 – polygenelubricants 2010-06-11 10:59:22

0

也不是那麼幹淨,但這應該適合你。 你可以把它當作XML和使用JAXB解析它:

ABBR.java:

import javax.xml.bind.annotation.XmlAttribute; 

public class ABBR 
{ 
    @XmlAttribute public String id; 
} 

Main.java:

[..] 
String msHTMLFile = "<ABBR class='HighlightClass' id='highlight40001' style=\"BACKGROUND-COLOR: yellow\" >Fetal/Neonatal Morbidity and Mortality</ABBR>"; 
ABBR obj = JAXB.unmarshal(new StringReader(msHTMLFile), ABBR.class); 
System.out.println(obj.id); 
[..] 
0

如果你夠幸運,你的HTML源產生XML兼容的HTML,JAXB或其他XML解析器都可以。很多人沒有編寫特別格式良好的HTML(未封閉的標籤等),雖然我的一些同事已經使用HotSAX解析HTML的好結果:http://sourceforge.net/projects/hotsax/