papa eya
Messages postés4Date d'inscriptionjeudi 1 août 2013StatutMembreDernière intervention 2 août 2013
-
1 août 2013 à 19:38
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
5 août 2013 à 11:23
Bonjour à tous,
je me permets de vous demander de l'aide car cela fait depuis plusieurs jours que je cherche une solution, mais sans y arriver.
Donc voilà, je bosse en ce moment sur un projet qui consiste à extraire les métadonnées d'un document XML.
Enfin voici un exemple de fichier :
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<script language="JavaScript">
function popup() {
window.location="form/form.php";
};
</script>
<title>#1 Free Magick Course</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 97">
<meta name="keywords" content="magick,free magick course,magick of the future,hermetics,esoterics,paranormal,parapsychology,psychic power,psionics,radionics,magickal training,magick study,modern magick,mental powers,evocations">
<meta name="description" content="A free course in practical magick and radionics, lots of practical exercises">
<meta name="Template" content="C:\MSOFFICE\OFFICE\html.dot">
<META NAME="AUTHOR" CONTENT="karl hans welz">
<meta name="GENERATOR" content="Mozilla/4.7 [en] (Win98; I) [Netscape]">
j'ai besoin d'extraire : le contenu de la balise <title >,le contenu de <meta name="keywords" content> et le contenu de <meta name="description" content>
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 août 2013 à 08:59
Salut,
Sinon si tu veux juste le content des balises title, meta-keywords et meta-description
/* html est un string avec le contenu de ton HTML */
String title = html.replaceAll("(?i).*<title>(.*)</title>.*", "$1");
String metaKeywords = html.replaceAll("(?i).*<meta name=\"keywords\" content=\"(.*?)\">.*", "$1");
String metaDescription = html.replaceAll("(?i).*<meta name=\"description\" content=\"(.*?)\">.*", "$1");
System.out.println("Title: " + title);
System.out.println("Keywords: " + metaKeywords);
System.out.println("Description: " + metaDescription);
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 2 août 2013 à 12:06
@Julien39: si ton html est mal formaté (genre les balises méta de l'exemple), ton parser risque de perdre les pédales, non?
Je partirais plus sur la solution de Twinuts...
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 août 2013 à 19:19
Moi aussi je partirais plus sur ma solution ^^
J'ai trop de mal avec l'indentation des messages... (il y a trop de boutons/liens pour répondre à un sujet...)
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 3 août 2013 à 11:09
@Twinuts: en fait, c'est assez simple. Pour répondre au sujet (=poster un message dans le thread), tu cliques sur le bouton "Répondre". Les commentaires servent plus à demander des précisions annexes. Du moins, c'est comme cela que je le voies..
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 5 août 2013 à 11:17
J'ai trop de mal, bien que je me suis fait un ptit flood test dans la sandbox :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tu devais utiliser des parsers XML qui te permettront de manipuler bien plus facilement des documents XML plutôt que le code donné plus haut avec des manipulations de String qui sont coûteuses parfois.
Regarde du côté de JDOM et de SAX, ils te permettent de charger un document XML facilement et d'obtenir rapidement la contenu d'une balise.
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 5 août 2013 à 08:51
@Pylouq: Attention, le HTML ne respecte pas forcément les normes XML et donc ton fichier peut être mal formatté. Par exemple ici, les balises meta ne sont pas fermées...
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 5 août 2013 à 11:23
Maintenant si le truc c'est de passer exclusivement via des API, toutes les API feront l'affaires. Cependant pour les même raisons que Buno je dirais même exceptée celles qui font du pure XML...