Archives par mot-clé : XML

Android : main.out.xml:1: error: Error parsing XML: no element found

Publié dans Java | Laisser un commentaire

Tiens, voilà longtemps que je n’avais pas écris un nouveau billet ! Depuis Noël en fait. Qu’importe, me voilà de retour pour un billet sur Android ! Voilà une erreur avec laquelle j’ai dû découdre l’autre jour :

res\layout\main.xml:0: error: Resource entry main is already defined.
res\layout\main.out.xml:0: Originally defined here. ...\workspace\TP-Android\res\layout\main.out.xml:1:
error: Error parsing XML: no element found Error in an XML file: aborting build.

La solution

  • Supprimer le fichier main.out.xml
  • Cliquer sur le fichier de votre Activity principale (pour moi src/package-tp-android/main.java)
  • Relancer l’exécution

Si cela ne fonctionne toujours pas, essayez plutôt :

  • Supprimer le fichier main.out.xml
  • Cleaner le projet (Projet / Clean…) et rafraichir (F5 sur le projet, ou clic droit / Refresh)
  • Relancer l’exécution !

L’explication

Cette erreur est due à la création du fichier main.out.xml qui fait un doublon de nom avec le main.xml et ce fichier est créé si on lance un run à partir du main.xml. Pour éviter l’erreur, il faut donc lancer le run en sélectionnant un fichier Java (de préférence l’Activity principale) et ensuite utiliser l’historique des run.

Lire un fichier XML avec jQuery

Publié dans Javascript | Laisser un commentaire

Ces derniers jours avec mon système de commentaires, je me suis pas mal amusé sur plusieurs points de jQuery, mais une notion me paraissait étrange : la lecture d’un fichier XML. JQuery permet une manipulation simple et poussée du DOM, mais lorsqu’on récupère un fichier XML d’une requête Ajax, on serait incapable de le traiter autrement qu’avec des « bidouilles » Javascript à l’ancienne ?

$.post('ajax.php', function(xml) {
 	var xmlData = xml.getElementsByTagName('com')[0];
 	var ret = xmlData.getElementsByTagName('ret')[0].firstChild.nodeValue;
 	var xmlPseudo = xmlData.getElementsByTagName('pseudo')[0].firstChild.nodeValue;
 	var xmlCommentaire = xmlData.getElementsByTagName('commentaire')[0].firstChild.nodeValue;
}, 'xml');

Franchement, j’y croyais pas. Aujourd’hui j’ai trouvé la solution !

Continuer la lecture

Une affaire de robots.txt

Publié dans Référencement | 2 commentaires

Le fichier robots.txt est un des fichiers bien pratique sur tout site Web pour que les robots des moteurs de recherche (et tous les robots bienveillants en général) puissent comprendre comment l’indexer intelligemment. Il permet de préciser les pages à ne pas indexer (accès admin par exemple), et d’interdire l’entrée à certains robots connus. C’est aussi là que l’on peut préciser le chemin vers un fichier sitemap pour que le site soit indexer plus rapidement.
Robots.txt
Ce fichier se créé très rapidement, en quelques lignes c’est chose faites. Il faut le créer à la racine du site Web et de la nommer « robots.txt ». Un petit exemple :

User-Agent: T-Rex
Disallow: /
User-Agent: *
Disallow:
Sitemap: http://www.example.com/sitemap.xml

Ce fichier robots.txt interdit la visite de toutes les pages du site pour le user-agent T-Rex, ce qui correspond à Lycos, et autorise tous les autres robots à visiter toutes les pages du site.
Ce fichier précise aussi le chemin vers le fichier sitemap.xml (qui rappelons-le doit se trouver aussi à la racine du site Web. Voir Parlons de Sitemaps).
Voyons son fonctionnement plus en détails.
Continuer la lecture

La Syntaxe XPath

Publié dans XML | Un commentaire

Bonjour tout le monde ! Aujourd’hui nous allons parler d’un outils très utilisé dans le traitement de données XML, J’ai nommé XPath. La syntaxe XPath est notamment utilisée dans certains langages tels que XSLT dont nous parlerons dans un prochain article. On peut citer également XQuery qui joue énormément avec XPath. Voyons de plus près à quoi ca ressemble.

Présentation du langage XPath

Comme son nom l’indique, XPath permet de définir d’écrire des « chemins » (path en anglais). Ces chemins, qui ont une syntaxe particulière, ont pour but la sélection de certaines parties, certains nœuds d’un document XML et ce de manière simplissime. Découvrons ca sur un exemple.

<blog>
	<info>
		<nom>30 minutes par jour</nom>
		<description langue="fr">Un blog qui cause d'informatique</description>
		<url type="internet">http://30minparjour.la-bnbox.fr/</url>
	</info>
	<billets>
		<billet>
			<titre langue="fr">Petit point sur le XML</titre>
			<categorie>XML</categorie>
		</billet>
		<billet>
			<titre langue="fr">En ce début d'année, faisant le point</titre>
			<categorie>Generalité</categorie>
		</billet>
	</billets>
</blog>

Continuer la lecture

Petit point sur le XML

Publié dans XML | 3 commentaires

Voilà quelques temps déjà que je veux faire un petit point sur le XML. Une sorte d’aperçu théorique et un peu pratique permettant d’aller plus loin avec ce langage tellement utilisé aujourd’hui. Ce jour semble être venu ! (tintindindin !) Tout du moins en partie, puisqu’aujourd’hui, je parlerai du XML, de la bonne formation d’un fichier XML et de sa validité.

Présentation rapide d’XML

XML, qu’est-ce que c’est ? C’est un langage d’échange basé sur le balisage. Peu après sa création en 1996 (ça date quand même), il remplace le SGML qui était un peu plus compliqué, et c’est aujourd’hui un méta-langage universel pour les données sur le Web, surtout depuis que le W3C s’est chargé de le standardiser.
Bref, on peut mettre des données dans un fichier XML, et grâce à différentes techniques on est capable de les récupérer, les traiter, les afficher, ajouter des données au fichier… faire des trucs un peu cool dessus ! On s’en sert pour les flux RSS et Atom, pour l’Ajax, on peut l’utiliser comme base de données en PHP et je sais aussi qu’OpenOffice s’en sert pour le format de ses fichiers (.odt, tout ça). C’est utile et utilisé !

Un fichier XML bien formé

Un fichier XML est bien formé lorsqu’il respecte la syntaxe d’XML. Pour vérifier qu’un fichier XML est bien formé, on peut utiliser le validateur de la W3schools. Et d’ailleurs, pour apprendre à créer un fichier XML bien formé, on peut utiliser le tutoriel de la W3schools : Tutoriel XML W3schools.
Exemple de fichier XML bien formé :

<?xml version="1.0" encoding="ISO-8859-1"
<blog>
	<nom>30 minutes par jour</nom>
	<description langue="fr">Un blog qui cause d'informatique 30 minutes tous les jours (ou presque)</description>
	<url type="internet">http://30minparjour.la-bnbox.fr/</url>
	<billets>
		<billet>
			<titre langue="fr">Petit point sur le XML</titre>
		</billet>
		<billet>
			<titre langue="fr">En ce début d'année, faisant le point</titre>
		</billet>
	</billets>
</blog>

Voici un résumé de cette syntaxe :
Continuer la lecture

Publier un billet sur Dotclear via Google Documents avec XML/RPC

Publié dans Dotclear | 2 commentaires

Sur Dotclear (et d’autres blogs), il est possible de publier un billet sans passer par l’interface d’administration. J’ai découvert cette fonctionnalité assez magique il y a quelques temps, et j’avoue ne pas m’en servir souvent, mais par exemple, aujourd’hui j’écris ce billet à partir de Google Documents ! Si, si, c’est vrai ! J’ai coché une petite case sur Dotclear, j’ai configuré Google Documents comme il faut, et ça marche.
Ce petit miracle, est possible grâce à XML/RPC. C’est un protocole RPC (Remote Procedure Call) qui permet en gros d’utiliser du XML pour faire dialoguer mon blog Dotclear et Google Documents.

Mode d’emploi

Il faut tout d’abord aller dans l’interface d’administration de Dotclear (Tableau de bord > Paramètre du blog) et dans Configuration du blog, cocher : Activer l’interface XML/RPC.

Le petit lien plus d’informations nous mène en bas de la page et fournit toutes les infos pour configurer Google Documents (ou autre).

Maintenant, il faut se rendre sur Google Documents. On créé un document texte classique, et on écrit ce que l’on souhaite dedans.
Reste ensuite à publier le document sur un blog. Pour cela, il faut cliquer sur Partager > Publier en tant que page Web …. Cela nous mène à la page suivante :

Avant de publier le billet, il va falloir paramétrer l’envoi.

Rien de bien compliqué, il suffit de suivre les informations fournies par Dotclear.
En cliquant sur Envoyer dans mon blog, le billet est automatiquement publié ! Magie !

Dans le cas de Google Documents, le corps du billet est le corps du document, et le titre correspond aux premiers mots de la première ligne. L’inclusion du titre du document lors de l’envoi ne fonctionne pas. Et je n’arrive pas à préciser la catégorie. Bref, ce n’est pas ce qui se fait de plus pratique, mais si on a quelque chose d’écrit sur Google Documents et que sur un coup de tête on décide de le publier sur son blog, ça peut servir.
Petit avantage/désavantage tout de même, les images sont stockés chez Google. ça peut être pratique si vous avez peu d’espace disque, mais c’est quand même mieux d’avoir tout chez soit !

Pour aller plus loin

Je fournis à Google Documents le script XML/RPC sur mon blog qui se charge de publier un billet. Ce script demande un mot de passe à Google, je le luis fournis, et je lui dis aussi quel billet envoyer. Google Documents transforme tout ça au format XML qui va bien, Dotclear re-transforme ça au format qui lui va bien, et c’est gagné !
Si je saisis bien, XML/RPC est l’ancêtre du SOAP (Simple Object Access Protocol) qui est plus couramment employé aujourd’hui.

Parlons de sitemaps

Publié dans XML | Laisser un commentaire

A vrai dire il y a 2 types de sitemaps, puisque 2 utilisations possible des dites sitemaps :

  • La sitemap pour les visiteurs, plus communément appelée « Plan du Site ». Son but est d’aider le visiteur à se repèrer, elle doit donc être jolie, bien mise en forme, et ne pas contenir trop de liens. Google n’aime pas quand le nombre d’urls sur une page approche les 100, donc une sitemap ne doit afficher que les liens importants, et à la rigueur les articles en vues.
  • La sitemap pour les robots, comme les robots de moteur de recherche. Son but est d’aider les moteurs de recherche à indexer plus rapidement toutes les pages d’un site Internet. Qu’importe la beauté, c’est donc la structure du fichier qui compte puisqu’un protocole a été mise en place pour standardiser tout ça. Une sitemap peut contenir autant d’url que l’on veut, tant que l’on s’y prend bien. (puisqu’en fait on peut créer plusieurs sitemaps que l’on liste avec une sitemapindex)

Je vais m’attarder un tout petit peu sur le deuxième type de sitemaps puisque j’ai dû générer la sitemaps d’un site de plus de 3 millions de pages, ce qui m’a un peu forcé à me pencher sur la question. (j’étais bien guidé cela dit !)

Le protocole Sitemap

Sitemap classique

Deux choix pour les sitemaps classiques * Un fichier texte avec tous les urls à la ligne. Pas top. * Un fichier XML bien mis en page avec possibilité de spécifier certaines options. Bien mieux ! C’est là dessus que je vais m’attarder.
Voici la tête d’une petite sitemap XML avec 3 urls :

 <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>  
      <loc>http://la-bnbox.fr/cahier.html</loc>
      <lastmod>2009-07-10</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://la-bnbox.fr/t18-francais.cahier</loc>
      <lastmod>2009-07-25</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.7</priority>
   </url>
   <url>
      <loc>http://la-bnbox.fr/554-Prepa-PSI--Penser-l-Histoire---Introduction.cahier</loc>
      <lastmod>2009-07-25</lastmod>
      <changefreq>yearly</changefreq>
      <priority>0.5</priority>
   </url>
</urlset>

L’entête est assez classique, mais on peut noter que l’encodage est en UTF-8 et qu’il faut qu’il soit en UTF-8.
Et on peut résumer un bloc pour un url de cette manière :
Continuer la lecture