From: PENNEC Vincent (vincent.pennec@cub-brest.fr)
Date: 13/11/2003 - 14:12
Bonjour,
> j'ai un fichier XSLT qui liste en tableau (?) un fichier XML
Je suis pas sûr d'avoir bien compris ce que vous voulez faire :
XSLT
XML =============> HTML presentant le XML mis en forme + formulaire pour transmettre le XML ?
Comme le disait S Bonhomme pour présélectionner un fichier il faut renseigner le champ value
d'un input de type file
<input type="file" name="fichier" value="/home/steph/mondoc.xml"/>
Cependant le traitement des fichiers avec asp n'est pas (à mon avis) simple (c'est pas PHP :) ),
Personnellement il a fallu que j'ajoute
enctype="multipart/form-data" aux propriétés du form et que je trouve un "composant" pour enfin réussier à charger un fichier avec asp.
Bref, si vous préférez traiter une chaine de caractere et que pouvez vous accomoder des restrictions suivantes :
le fichier transmis ne sera pas strictement identique
il contient juste les "balises xml" et pas la declaration;
les "blancs" ne sont pas respectés...
Alors, j'utiliserai un XSL du style
..
<xsl:template match="* | @* | comment() | text()" mode="copie">
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="copie"/>
</xsl:copy>
</xsl:template>
..
<xsl:template match="/">
<!-- appel a votre code de mise en forme -->
<xsl:apply-templates />
<!-- /appel -->
<form method="post" action="http://................/receptiondufichier.asp">>
<textarea name="contenuXML">
<!-- ou input text-->
<!-- ne pas oublier de virer ce commentaire -->
<!-- sinon il se retrouvera dans le contenu du fichier -->
<!-- recopie du XML-->
<xsl:apply-templates mode="copie"/>
<!-- /recopie -->
</textarea>
<input type="submit"/>
</form>
</xsl>
..
Il y a -peut être- plus simple (je n'avais jamais eu l'occasion d'utiliser l'instruction copy alors j'ai peut être écrit des bêtises mais cela a l'air de fonctionner).
Si possible, à l'avenir, merci de virer le *$!% de style ajouté (par Frontpage ?) cela facilite la lecture.
Vincent.
PS: Une autre voie de recherche (sans rapport avec le XML) serait de transmettre le nom du fichier au serveur (ce que vous faites) et d' "ouvrir" le xml depuis le serveur (avec toutes ce que cela suppose comme restrictions (pas d'accès aux fichiers locaux...)). Pas forcément simple en asp (plus facile avec des aspx)
> -----Message d'origine-----
> De : Christophe GUYOMAR [mailto:cguyomar@hotmail.com]
> Envoyé : jeudi 13 novembre 2003 11:20
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] POST d'un fichier XML traduit par une feuille XSLT
>
>
>
> Bonjour,
>
> j'ai un fichier XSLT qui liste en tableau un fichier XML
> classique mais qui fait apparaître en plus un formulaire qui
> permet à l'utilisateur de faire un POST du fichier XML lu
> vers une adresse http://......
>
> Pour cela j'ai d'abord une fonction javascript :
>
> function add()
> {
> var doc
> doc=document.location.href;
> document.forms["maform"].elements["fichier"].value=doc
> }
>
>
> puis à la fin j'ai mon formulaire :
>
> <FORM name="maform" METHOD="POST" onsubmit="return
> disableButton()"
> ACTION="http://................/receptiondufichier.asp">
> <fieldset class="etiquette" style="padding: 10px;
> font-weight:bold; font-family:'Comic Sans MS'; color: #1E94D3
> ; border: outset 5px;"> <legend>Envoyer le fichier :
> </legend> <p/> Fichier : <input type="text" name="fichier"
> size="100"/> <p/> <input TYPE="submit" NAME="submit"
> id="VALID" style="font-weight: bold" value="envoyer le
> fichier"/> </fieldset> <p/> </FORM>
>
> <script language="javascript">
> add();
> </script>
>
> Le problème est que le fichier envoyé est vide, car il envoie
> le chemin du répertoire où se trouve le fichier XML
Normal c'est ce qui est demandé au script :)
>et pas le
> fichier XML lui-même.... Comment faire pour envoyer en string
> (input="text") le contenu de ce fichier XML (<?xml>..........</xml>) ?
>
> Merci
>
> Christophe
>
> _________________________________________________________________
> MSN Search, le moteur de recherche qui pense comme vous !
> http://search.msn.fr/
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|