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

Extraction de Fiches d'un fichier XML


http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/fiches/v2/table-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" les enfants d un type de tag. Si tag=Entry, ca ramasse les enfants immédiats de "Entry".

 <!ELEMENT Entry (Title, Creator?, Description, Keywords, Location?, 
       MetaDocumentAuthor, MainType, SubType*, Topic, SubTopic*)>

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)

Note that MOST XML files will NOT work, examples that will work are:
http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/fiches/v2/table-arbre.jsp?url=http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/fiches/Fiches.xml&tag=Entry
http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/fiches/v2/table-arbre.jsp?url=http://tecfa2.unige.ch/guides/java/staf2x/ex/xml/formcont/formcont.xml&tag=session-component


<% String URL = request.getParameter ( "url" ); String tag = request.getParameter ( "tag" ); if ((URL == null) || (tag == null)) { out.println ("We need a URL like this: ...?url=...&tag=..."); return; } // 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 " + tag+" :

"); // List of entries (fiches) NodeList entries = TheDocument.getDocumentElement().getElementsByTagName(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; } %>