从java中的html代码中获取属性值

时间:2010-06-11 10:48:01

标签: java

我有HTML字符串值,我想从该html字符串值中获取一个属性(id)值 你可以帮我怎么做吗?

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

结果应该来 - highlight40001;

3 个答案:

答案 0 :(得分:0)

尝试使用此正则表达式模式:

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

然后提取第1组捕获的字符串。这不是万无一失的;使用正则表达式解析HTML永远不会。您可以尝试使正则表达式复杂化以使其更灵活。或者您可以使用HTML解析器。我推荐后者。

答案 1 :(得分: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);
[..]

答案 2 :(得分:0)

如果您很幸运并且您的HTML源代码生成符合XML的HTML,那么JAXB或其他XML解析器就可以正常使用它。很多人都没有编写特别结构良好的HTML(未封闭的标签等),尽管我的一些同事已经通过HotSAX解析HTML得到了很好的结果:http://sourceforge.net/projects/hotsax/