[FogBugz #505] Corrigé la correspondance des accents #568

Open
opened 2023-07-04 08:39:30 +02:00 by fbenoist68 · 10 comments

Assigned To: CLOSED
Project: Mobile Portal
Area: Divers
Category: Bogue
Priority: A fixer impérativement

Assigned To: CLOSED Project: Mobile Portal Area: Divers Category: Bogue Priority: A fixer impérativement
Poster
Owner

Event ID: 2416
Date: 2016-10-29T02:49:09Z
Person: Frederik Benoist
Description: Fermé par Frederik Benoist

Event ID: 2416 Date: 2016-10-29T02:49:09Z Person: Frederik Benoist Description: Fermé par Frederik Benoist
Poster
Owner

Event ID: 2374
Date: 2016-10-22T07:03:40Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

Event ID: 2374 Date: 2016-10-22T07:03:40Z Person: Frederik Benoist Description: Modifié par Frederik Benoist
Poster
Owner

Event ID: 2373
Date: 2016-10-22T07:03:19Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

Event ID: 2373 Date: 2016-10-22T07:03:19Z Person: Frederik Benoist Description: Modifié par Frederik Benoist
Poster
Owner

Event ID: 2372
Date: 2016-10-22T06:17:17Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

Surtout il faut laisser ORACLE gérer ces entities dans le XML sinon il n'est plus capable de le parser (particuièrement avec l'&)

=> Il faut faire un utl_i18n.unescape_reference à l'affichage

 

Event ID: 2372 Date: 2016-10-22T06:17:17Z Person: Frederik Benoist Description: Modifié par Frederik Benoist <h1><strong>Surtout il faut laisser ORACLE g&eacute;rer ces entities dans le XML sinon il n&#39;est plus capable de le parse</strong>r (particui&egrave;rement avec l&#39;&amp;)</h1> <p>=&gt; Il faut faire un <code>utl_i18n.unescape_reference</code> &agrave; l&#39;affichage</p> <p>&nbsp;</p>
Poster
Owner

Event ID: 2371
Date: 2016-10-21T15:38:13Z
Person: Frederik Benoist
Description: Résolu (Corrigé) and assigned to Frederik Benoist by Frederik Benoist

Je vais passer par le package utl_i18n.unescape_reference

SELECT
       NVL (xmltype (mqe.libelle).EXTRACT ('trad/' || 'fr' || '/text()'),
            xmltype (mqe.libelle).EXTRACT ('trad/fr/text()')).getstringval ()
          AS libelle,
          NVL (utl_i18n.unescape_reference(xmltype (mqe.libelle).EXTRACT ('trad/' || 'fr' || '/text()').getstringval ()),
               utl_i18n.unescape_reference(xmltype (mqe.libelle).EXTRACT ('trad/fr/text()').getstringval ()))
          AS libelle1,
          utl_i18n.unescape_reference(xmltype(mqe.libelle).extract('trad/fr/text()').getstringval ())
  FROM mr_controle_element mqe
 WHERE id_controle_element = 301;
Event ID: 2371 Date: 2016-10-21T15:38:13Z Person: Frederik Benoist Description: R&#233;solu (Corrig&#233;) and assigned to Frederik Benoist by Frederik Benoist <p>Je vais passer par le package <strong>utl_i18n.unescape_reference</strong></p> <pre> SELECT NVL (xmltype (mqe.libelle).EXTRACT (&#39;trad/&#39; || &#39;fr&#39; || &#39;/text()&#39;), xmltype (mqe.libelle).EXTRACT (&#39;trad/fr/text()&#39;)).getstringval () AS libelle, NVL (utl_i18n.unescape_reference(xmltype (mqe.libelle).EXTRACT (&#39;trad/&#39; || &#39;fr&#39; || &#39;/text()&#39;).getstringval ()), utl_i18n.unescape_reference(xmltype (mqe.libelle).EXTRACT (&#39;trad/fr/text()&#39;).getstringval ())) AS libelle1, utl_i18n.unescape_reference(xmltype(mqe.libelle).extract(&#39;trad/fr/text()&#39;).getstringval ()) FROM mr_controle_element mqe WHERE id_controle_element = 301;</pre>
Poster
Owner

Event ID: 2370
Date: 2016-10-21T15:37:29Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

Solutions

SQL> create table xtest(xcol xmltype);

Table created.

SQL> insert into xtest values(xmltype('<a>''1</a>'));

1 row created.

SQL> select x.xcol.extract('/a/text()').getstringval() val from xtest x;

VAL
--------------------------------------------------------------------------------
&apos;1

SQL> select extractvalue(xcol,'/a') val from xtest;

VAL
--------------------------------------------------------------------------------
'1

SQL> select dbms_xmlgen.convert(x.xcol.extract('/a/text()').getstringval(),1) val from xtest x;

VAL
--------------------------------------------------------------------------------
'1

SQL> select utl_i18n.unescape_reference(x.xcol.extract('/a/text()').getstringval()) val from xtest x;

VAL
--------------------------------------------------------------------------------
'1
Event ID: 2370 Date: 2016-10-21T15:37:29Z Person: Frederik Benoist Description: Modifié par Frederik Benoist <p>Solutions</p> <pre class="jive-pre"> <code class="jive-code">SQL&gt; create table xtest(xcol xmltype); Table created. SQL&gt; insert into xtest values(xmltype(&#39;&lt;a&gt;&#39;&#39;1&lt;/a&gt;&#39;)); 1 row created. SQL&gt; select x.xcol.extract(&#39;/a/text()&#39;).getstringval() val from xtest x; VAL -------------------------------------------------------------------------------- &amp;apos;1 SQL&gt; select extractvalue(xcol,&#39;/a&#39;) val from xtest; VAL -------------------------------------------------------------------------------- &#39;1 SQL&gt; select dbms_xmlgen.convert(x.xcol.extract(&#39;/a/text()&#39;).getstringval(),1) val from xtest x; VAL -------------------------------------------------------------------------------- &#39;1 SQL&gt; select utl_i18n.unescape_reference(x.xcol.extract(&#39;/a/text()&#39;).getstringval()) val from xtest x; VAL -------------------------------------------------------------------------------- &#39;1</code></pre>
Poster
Owner

Event ID: 2369
Date: 2016-10-21T15:24:55Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

SELECT CASE
WHEN EXISTSNODE (xmltype (mqe.libelle), 'trad/' || 'fr') = 1
THEN
UPDATEXML (xmltype (mqe.libelle),
'/trad/' || 'fr' || '/text()',
'l''autre')
ELSE
APPENDCHILDXML (xmltype (mqe.libelle),
'/trad',
XMLELEMENT (EVALNAME ('fr'), 'l''autre'))
END
AS trad,
NVL (xmltype (mqe.libelle).EXTRACT ('trad/' || 'fr' || '/text()'),
xmltype (mqe.libelle).EXTRACT ('trad/fr/text()')).getstringval ()
AS libelle
FROM mr_controle_element mqe
WHERE id_controle_element = 301;
Event ID: 2369 Date: 2016-10-21T15:24:55Z Person: Frederik Benoist Description: Modifié par Frederik Benoist <pre> SELECT CASE WHEN EXISTSNODE (xmltype (mqe.libelle), &#39;trad/&#39; || &#39;fr&#39;) = 1 THEN UPDATEXML (xmltype (mqe.libelle), &#39;/trad/&#39; || &#39;fr&#39; || &#39;/text()&#39;, &#39;l&#39;&#39;autre&#39;) ELSE APPENDCHILDXML (xmltype (mqe.libelle), &#39;/trad&#39;, XMLELEMENT (EVALNAME (&#39;fr&#39;), &#39;l&#39;&#39;autre&#39;)) END AS trad, NVL (xmltype (mqe.libelle).EXTRACT (&#39;trad/&#39; || &#39;fr&#39; || &#39;/text()&#39;), xmltype (mqe.libelle).EXTRACT (&#39;trad/fr/text()&#39;)).getstringval () AS libelle FROM mr_controle_element mqe WHERE id_controle_element = 301;</pre>
Poster
Owner

Event ID: 2368
Date: 2016-10-21T15:24:09Z
Person: Frederik Benoist
Description: Modifié par Frederik Benoist

XML defines five "entity references" to allow

documents to include the following characters:

Ampersand &amp;

Apostrophe &apos;

Double quote  &quot;

Greater than  &gt;

Less than &lt;

Event ID: 2368 Date: 2016-10-21T15:24:09Z Person: Frederik Benoist Description: Modifié par Frederik Benoist XML defines five &quot;entity references&quot; to allow <br /> documents to include the following characters:<br /> Ampersand &amp;amp;<br /> Apostrophe &amp;apos;<br /> Double quote&nbsp; &amp;quot;<br /> Greater than&nbsp; &amp;gt;<br /> Less than &amp;lt;
Poster
Owner

Event ID: 2310
Date: 2016-09-29T08:29:15Z
Person: Frederik Benoist
Description: Attribué à Frederik Benoist par Frederik Benoist

Event ID: 2310 Date: 2016-09-29T08:29:15Z Person: Frederik Benoist Description: Attribué à Frederik Benoist par Frederik Benoist
Poster
Owner

Event ID: 2309
Date: 2016-09-29T08:29:14Z
Person: Frederik Benoist
Description: Ouvert par Frederik Benoist

Event ID: 2309 Date: 2016-09-29T08:29:14Z Person: Frederik Benoist Description: Ouvert par Frederik Benoist
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: fbenoist68/mobileportal#568
There is no content yet.