sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sdx-users] Encodage / récupération fichiers XML bruts


From: Emmanuel Bégué
Subject: [sdx-users] Encodage / récupération fichiers XML bruts
Date: Tue, 30 Sep 2003 16:33:01 +0200

Bonjour,

Après une recherche je souhaite exporter les résultats de la
recherche vers un fichier xml unique, mais lors de la procédure
d'export les caractères accentués sont transformés à la volée
en entités html.

La xsp d'export (export.xsp) contient:

<sdx:page>
        <sdx:executeFieldQuery hpp="-1" docs="true"/>
        </sdx:page>

La xsl correspondante (export.xsl) contient:

<xsl:output method="xml" encoding="iso-8859-1" media-type="text/html"/>
<xsl:template match="sdx:results">
        <export>
        <xsl:for-each select="./sdx:result/transfert">
                <xsl:copy-of select="."/>
                </xsl:for-each>
                </export>
        </xsl:template>

(les documents du corpus ayant comme élément racine: "transfert").

Lorsqu'on interroge export.xsp comme ceci:
        export.xsp?qid=q34

le résultat obtenu est partiellement conforme aux attentes
(on obtient bien la concaténation de tous les documents de la
recherche q34 dans un document unique, qu'on peut voir en
affichant la source du document affiché dans le navigateur)
à ceci près que:

1- la source ne contient pas de déclaration xml (et le fichier
n'est pas reconnu comme xml par IE)

2- les caractères spéciaux sont transformés en entités html
(é => &eacute;) ce qui fait que le fichier "xml" produit n'est
en réalité pas correct.

Comment faire?
Cordialement,
EB


PS: ce deuxième point pose également un problème lorsque, en
affichant un document résultat, on veut construire des liens
avec le contenu des éléments du document xml original; dans ce
cas en effet, le contenu des attributs href est apparemment
transformé en UTF-8: c'est à dire que par exemple "é" qui vaut
"&eacute;" dans le document vaut "%C3%A9" à l'intérieur d'un
attribut href (et seulement dans ce cas) -- et je voudrais
qu'il reste à "é" (ou "e" à la rigueur).

Ce que je ne comprends pas c'est que cela ne se produise pas
lorsqu'on utilise les valeurs de champs sdx:field ("brief"),
même non échappés (dans ce cas on aura bien "é" pour "é") => ?


PS2: à la relecture, j'ai l'impression de ne pas être très très
clair ;-) Je peux joindre des fichiers exemple le cas échéant.


PS3: les fichiers xml d'origine sont correctement déclarés
(iso-8859-1).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]