Accueil > Développement d'applications SDX > Les concepts de base


Les documents HTML

Dernière modification : 2001/11/02 11:51:11     Contact : Martin Sévigny

Depuis la version 1.1 de SDX, on peut importer et indexer des documents HTML. Cette fonctionnalité n'a pas pourobjectif de faire de SDX un outil de recherche de documents HTML, mais permet d'ajouter de tels types de documents lorsque nécessaire. Les possibilités sont limitées et le resteront.

Pour SDX, un document HTML est représenté par un petit document XML qui ressemble à celui-ci :

<?xml version="1.0"?>
<htmlDocument
  id="html/test.html"
  url="file:///usr/local/jakarat/webapps/sdx/test/html/test.html"
  path="/usr/local/jakarat/webapps/sdx/test/html/test.html"
>

Dans ce document, les attributs id et url seront toujours présents.

Comme on peut le constater, ce document XML contient un lien vers le document HTML qui doit être accessible par une URL. Pour indexer un tel document, on doit simplement utiliser une transformation XSLT qui ressemble à ceci :

  ...
  <xsl:param name="sdx_servletsUrl"/>
  ...
  <xsl:template match="/htmlDocument">
    <sdx:document id={@id}">
      <xsl:apply-templates
       select="document(concat($sdx_servletsUrl, '/html2xhtml?u=', @url))"/>
    </sdx:document>
  </xsl:template>
  ...
  <xsl:template match="html">
    <sdx:field code="titre"><xsl:value-of select="//title"/></sdx:field>
    <sdx:field code="contenu"><xsl:value-of select="."/></sdx:field>
  </xsl:template>

Cette transformation produire deux champs, un champ titre content l'élément title du document HTML, et un champ contenu contenant tout le texte du document. Cette partie est à adapter.

Cette indexation peut fonctionner parce que SDX inclut une servlet permettant de transformer un document HTML en format XHTML, et on peut donc le traiter à l'aide de la fonction document().