Parser les Microformats

From Microformats Wiki
Jump to navigation Jump to search


Le mécanisme de parsage des microformats qui dépend de documents ayant même des propriétés xml minimales comme celles bien formées peut échouer au moment de consommer un contenu mal-formé. Tidy ou même mieux CyberNeko peut être un travail utile à regarder. En particulier, X2V utilise XSLT, et tidy pour nettoyer toute entrée non-bien-formée avant de la traiter.


Parser les valeurs de classe

Au moment de parser les valeurs de classe, une attention doit être portée :

  1. les attributs Class peuvent contenir plusieurs noms de classe, par ex : class="foo vcard bar"
  2. les attributs Class peuvent contenir plusieurs noms de classe qui contiennent le nom de classe utilisé par un microformat, par ex : class="foovcardbar" class="foovcard", class="vcardbar".
  3. Plusieurs noms de classe sont séparés par un ou plusieurs caractères espace blanc.
  4. Les noms de classes sont sensibles à la casse.

Voir http://www.la-grange.net/w3c/html4.01/struct/global.html#h-7.5.2

Exemple JavaScript

La fonction JavaScript Ultimate getElementsByClassName peut être utile. Alors vous pouvez faire :

var adrs = document.getElementsByClassName(document, "*", "adr");

ou même :

var cities = document.getElementsByClassName(document, "*", "locality");

Exemple XSLT

<xsl:if test="contains(
   concat (' ', normalize-space(@class),' '),
   ' vcard '
   )" > ...


JavaScript peut aussi exécuter XSLT nativement dans les navigateurs comme Firefox. Voir Firefox extensions pour exécuter des transformations XSL dans Firefox sans JavaScript.

XQuery exemple

Utilisant aussi XPath...

<div style="background-color:yellow;">
{
  for $a in doc()//div[@class='vcard']
  let $b := $a/div[@class='fn org' or @class='org fn']
  let $c := $a/div[@class='adr']
  return ($b, $c, <br />)
}
</div>

For example, this could be used against http://technorati.com/about/contact.html. See Firefox extensions for getting XQuery in Firefox.

Note that the 'class' tests above should really use the more complicated XPath expression used within the XSLT example (in order to allow for other classes to be used on the element, variations in whitespace, etc.), but it is simplified above for demonstration purposes.

Simple XPath expressions can also be used, as these are considered to be valid XQueries.

Parser les valeurs rel/rev

Parser les valeurs rel et rev est similaire au parsage de valeurs de classe exception faite pour les différences suivantes :

  1. les valeurs rel et rev devraient être séparées par un espace.
  2. les valeurs rel et rev ne sont pas sensibles à la casse.

Voir http://www.la-grange.net/w3c/html4.01/types.html#h-6.12.


Voir aussi