cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Faehndrich <phfaehndr...@bluewin.ch>
Subject Is there a way to inject tags in a text field from Cocoon 2.1 into MySQL using sql:execute-query?
Date Sat, 29 Apr 2017 23:41:43 GMT
Hi everybody,

I'm working since many years with Cocoon 2.1 within a Tomcat server and 
I need now to inject the content of my XML files in a MySQL database.

The problem is I have some XML elements (MySQL columns) that do contain 
HTML tags (some "<br/>", "<i>...</i>" and a few "<a href url="..."/>).

For now, all tags seem simply to be trimmed away from my output.

Is there a way to inject tags in a text field from Cocoon 2.1 into MySQL 
using <sql:execute-query>?

My database connection is defined as following in WEB-INF/cocoon.xconf:

     <jdbc name="dautrepart">
       <pool-controller min="1" max="10"/>
<dburl>jdbc:mysql://localhost:3306/dautrepart</dburl>
       <user>webapp</user>
       <password>webapp</password>
     </jdbc>

In the sitemap, I have these lines:

             <map:match pattern="copier.html">
                 <map:generate type="xpathdirectory" 
src="../bac_a_sable/textes" label="content">
                     <map:parameter name="xpath" value="/fiche"/>
                     <map:parameter name="include" value=".xml"/>
                 </map:generate>
                 <map:transform src="nettoyer_structure.xslt" 
label="debug01"/>
                 <map:transform src="preparer_sql.xslt" label="debug02"/>
                 <map:transform src="injection.xslt" label="requetes"/>
                 <map:transform type="sql">
                     <map:parameter name="use-connection" 
value="dautrepart"/>
                 </map:transform>
                 <map:serialize type="xml"/>
             </map:match>

And concerned parts of my stylesheet appears as follow:

                 <sql:execute-query>
                     <sql:query name="inserer_auteur">
                         <xsl:text>INSERT INTO auteur (nom, prenom, 
identifiant, biographie, portrait_petit) VALUES ("</xsl:text>
                         <xsl:value-of select="identite/nom"/>
                         <xsl:text>", "</xsl:text>
                         <xsl:value-of select="identite/prenom"/>
                         <xsl:text>", "</xsl:text>
                         <xsl:value-of select="identite/@id"/>
                         <xsl:text>", "</xsl:text>
                         <xsl:apply-templates select="bio"/>
                         <xsl:text>", "</xsl:text>
                         <xsl:value-of select="identite/portrait"/>
                         <xsl:text>")</xsl:text>
                     </sql:query>
                 </sql:execute-query>

     <xsl:template match="bio">
         <xsl:apply-templates/>
     </xsl:template>

     <xsl:template match="i">
         <i>
             <xsl:apply-templates/>
         </i>
     </xsl:template>

An extract of the file I have:

<fiche>
<identiteid="boissier_laurence">
<nom>Boissier</nom>
<prenom>Laurence</prenom>
<portrait>boissier_laurence_150x100.png</portrait>
</identite>
<bio>
Née en 1965, elle habite dans le canton de Genève. Participe à Bern ist 
überall et au cd
<i>Renens (VD)</i>
. Prix suisse de littérature 2017 pour
<i>Inventaire des lieux</i>
paru chez art&fiction.
<br/>
</bio>



Mime
View raw message