<%@ page import = "org.w3c.dom.*,org.apache.xerces.parsers.DOMParser,org.xml.sax.*" %> Fiches du campus virtuel en version XML

Fiches du campus virtuel en version XML

(enfin il s'agit d'une simple démo ....)

http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/fiches/v2/fiches-arbre.jsp affiche un document XML sous forme d'un arbre au format HTML. Techniques utilisé: JSP + un SAX/DOM parseur (Xerces). La version source est disponible.

Il s agit ici de la version "arbre" qui "rammasse" des éléments multiples quand trouve dans des elements de type Entry ci-dessous:

 <!ELEMENT Entry (Title, Creator?, Description, Keywords, Location?, 
       MetaDocumentAuthor, MainType, SubType*, Topic, SubTopic*)>
D'autres versions JSP sont disponibles: un pour le même arbre à éléments fixes, une version table et finalement un JSP (table-arbre.jsp) qui prend comme argument un URL et un tag arbitraire.

Le contenu du fichier XML (http://tecfa.unige.ch/guides/java/staf2x/ex/xml/fiches/Fiches2.xml) peut être visualisé en regardant le fichier Fiches2.text. Ce fichier XML est ISO-8859-1 encoded (accents tels qu'on les tape sous Unix ou Win).

Pour les autres versions (Application, servlet, etc.) voir http://tecfa.unige.ch/guides/java/staf2x/ex/xml/fiches/

English: This is a simple XAML-DOM-JSP Demo that shows how to deal with simple table-like structures. Click on all links above and you will understand (source code uses english variable names)
<% // URL String URL = "http://tecfa.unige.ch/guides/java/staf2x/ex/xml/fiches/Fiches2.xml"; // Entry element (fiche) String ROOT_ELEMENT_TAG = "Entry"; // DONNEES // charge le document et cree le document xml ou exit si cela ne marche pos // Note: Il est OBLIGATOIRE d'implementer ce try (avec xml.jar de Sun en tout cas!) try { DOMParser parser = new DOMParser(); parser.parse(URL); Document TheDocument = parser.getDocument(); // Say Hello out.println("

Fiches structurés par " + ROOT_ELEMENT_TAG+" :

"); // List of entries (fiches) NodeList entries = TheDocument.getDocumentElement().getElementsByTagName(ROOT_ELEMENT_TAG); int nEntries = entries.getLength(); // Deal Entry by Entry for(int i=0; i < nEntries; i++) { Element currentEntry = (Element) entries.item(i); NodeList entryItems = currentEntry.getChildNodes(); int nEntryItems = entryItems.getLength(); out.println(""); } out.println( "
Copyright TECFA, 1999/2000. FreeWare."); } catch (SAXParseException e) { out.println("The File is not well formed."); out.println(e.getMessage() + " at line " + e.getLineNumber() + ", column " + e.getColumnNumber()); } catch (SAXException e) { out.println("SAX exception found"); out.println(e.getMessage()); // e.printStackTrace(out); } catch (Exception e) { out.println (e.getMessage()); // e.printStackTrace(out); out.println ("

On arrete tout de suite, reparez l'erreur SVP


"); return; } %>