2010-02-17 15 views
1

Je suis vraiment nouveau dans ce domaine, alors s'il vous plaît soyez gentil si j'ai manqué quelque chose d'important à publier.Comment changer l'extension d'un fichier XML traité (en utilisant eXist & cocoon)

Courte: Est-il possible de changer le nom d'un fichier traité (eXist-DB) après la sérialisation?

Voici mon cas, la requête suivante à mon eXist-db:

http://localhost:8080/exist/cocoon/db/caos/test.xml

et je veux après sérialisation la follwing (xslt fonctionne très bien):

http://localhost:8080/exist/cocoon/db/caos/test.html

I j'utilise le sitemap.xmap avec cocoon (en espérant que c'est responsable)

 <map:match pattern="db/caos/**"> 
      <!-- if we have an xpath query --> 
      <map:match pattern="xpath" type="request-parameter"> 
       <map:generate src="xmldb:exist:///db/caos/{../1}/#{1}"/> 
       <map:act type="request"> 
        <map:parameter name="parameters" value="true"/> 
        <map:parameter name="default.howmany" value="1000"/> 
        <map:parameter name="default.start" value="1"/> 
        <map:transform type="filter"> 
         <map:parameter name="element-name" value="result"/> 
         <map:parameter name="count" value="{howmany}"/> 
         <map:parameter name="blocknr" value="{start}"/> 
        </map:transform> 
        <map:transform src=".snip./webapp/stylesheets/db2html.xsl"> 
         <map:parameter name="block" value="{start}"/> 
         <map:parameter name="collection" value="{../../1}"/> 
        </map:transform> 
       </map:act> 
       <map:serialize type="html" encoding="UTF-8"/> 
      </map:match> 
      <!-- if the whole file will be displayed --> 
      <map:generate src="xmldb:exist:/db/caos/{1}"/> 
      <map:transform src="..snip../stylesheets/caos2soac.xsl"> 
       <map:parameter name="collection" value="{1}"/> 
      </map:transform> 
      <map:transform type="encodeURL"/> 
      <map:serialize type="html" encoding="UTF-8"/> 
     </map:match> 

Alors ma question est la suivante: Comment puis-je modifier l'extension du test.xml-test.html après le traitement du fichier xml?

Contexte: Je générer des informations sur certains xml-dbs, cette infos sera affiché en html (qui travaille), mais je veux changer quelques entrys plus tard, après avoir généré le site html. Pour rendre cela confortable, je veux utiliser Jquery & Jeditable, mais le code ne fonctionne pas sur les fichiers xml. L'enregistrement du code HTML généré n'est pas une option.

tia pour toute suggestion [et | ou] aider

CC

Edit: Après avoir lu partout: pourrait-il que l'extension est hors de propos et que ce n'est un problème du port de 8080? Je suis confus ...

Répondre

1

Voici une façon. Pour être clair, vous voulez que db/caos/test.html soit ramassé dans cette carte: faites correspondre l'élément ci-dessus, n'est-ce pas? Mais vous voulez passer test.xml autour de

Remplacez <map:match pattern="db/caos/**"> par <map:match pattern="db/caos/**.html">. A partir de ce moment-là, {1} contiendra « test » de sorte que vous auriez besoin de changer les choses comme {../1} à {../1}.xml

Essentiellement, j'ai capturé la partie du nom de fichier avant .html {1} avec la carte: élément de match.