2010-06-11 11 views
-1

J'ai la valeur de chaîne HTML et je veux obtenir une valeur d'attribut (id) de cette valeur de chaîne html pouvez-vous m'aider comment le faire ??obtenir la valeur de l'attribut du code html en java

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

résultat devrait venir - highlight40001;

+0

Qu'est ce que c'est? Servlet, JSP, Applet? donner des informations plus pertinentes – Bozho

Répondre

0

Essayez d'utiliser ce modèle d'expression régulière:

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

Et puis extraire la chaîne capturée par le groupe 1. Ce n'est pas à toute épreuve; utiliser regex pour analyser HTML n'est jamais. Vous pouvez essayer de compliquer l'expression rationnelle pour la rendre plus flexible. Ou vous pouvez simplement utiliser un analyseur HTML. Je recommande ce dernier.

+0

Encore une fois, non recommandé, mais voir l'exemple à http://ideone.com/qUOMo – polygenelubricants

0

Aussi pas si propre, mais cela devrait fonctionner pour vous. Vous pouvez le traiter comme XML et l'analyser en utilisant 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

Si vous êtes chanceux et que votre source HTML XML produit HTML conforme, JAXB ou d'autres parseurs XML ira bien avec elle. Beaucoup de gens n'écrivent pas de HTML particulièrement bien formé (balises non fermées, etc), bien que certains de mes collègues aient obtenu de bons résultats en utilisant HTML avec HotSAX: http://sourceforge.net/projects/hotsax/

Questions connexes