我有HTML字符串值,我想从该html字符串值中获取一个属性(id)值 你可以帮我怎么做吗?
String msHTMLFile = "<ABBR class='HighlightClass' id='highlight40001' style=\"BACKGROUND-COLOR: yellow\" >Fetal/Neonatal Morbidity and Mortality</ABBR>";
结果应该来 - highlight40001;
答案 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/