IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Reconnaissance des caractères accentués


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut [XSLT] Reconnaissance des caractères accentués
    Bonjour,
    Je recois un fichier XML auquel j'applique une transformation XSL juste pour rajouter un autre tag dedans.
    Mon problème est que dans le fichier XML que je reçois et que je veux transformer il y a des caractères accentués et ça fait planter la transformation XSL (aussi bien avec XML Spy que avec Saxon).
    Message d'erreur de Saxon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Error on line 1 of file:/c:/mappings/roedlogi/PKT/ROEDPKT.ACC.PKT:
      SXXP0003: Error reported by XML parser: Erreur de conversion de caractÞre : "M
    alformed
      UTF-8 char -- is an XML encoding declaration missing?" (le numÚro de ligne peu
    t Ûtre trop bas).
    Transformation failed: Run-time errors were reported
    Voici le fichier XML que je reçois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     <?xml version="1.0"?>
    <Pickticket_1_5 version="1" id="INSDES COMMA">
    <GraCptNumEx>ROEDE1009</GraCptNumEx>
    <Pickticket>
      <PktCtlNbr>97806</PktCtlNbr>
      <PktNbr>97806</PktNbr>
      <OrderType>CR</OrderType>
      <PickticketHeaderFields>
        <ManagingTerritory>LIF</ManagingTerritory>
        <ShipTo>101038</ShipTo>
        <ShipToName>Monsieur Jean BECKER</ShipToName>
        <ShipToAddr1>Quai de la République</ShipToAddr1>
        <ShipToAddr2>ARC EN CIEL</ShipToAddr2>
        <ShipToCity>ST QUAY PORTRIEUX</ShipToCity>
        <ShipToZip>22410</ShipToZip>
        <ShipToCountry>001</ShipToCountry>
        <CustomerPONumber>17 THEO</CustomerPONumber>
        <OrderDate>2006-01-13T00:00:00+01:00</OrderDate>
        <ScheduleDeliveryDate>2006-01-13T00:00:00+01:00</ScheduleDeliveryDate>
        <InventoryShortageFlag></InventoryShortageFlag>
        <SpeclInstrCode1></SpeclInstrCode1>
        <CollectFreight>M</CollectFreight>
        <Related>1</Related>
        <CODFunds>A</CODFunds>
        <FTSRNbr>470.03</FTSRNbr>
        <PortOfLoading></PortOfLoading>
        <PortOfDischarge></PortOfDischarge>
        <TMSPurchaseOrderFlag>Y</TMSPurchaseOrderFlag>
        <DesigModeCode>M</DesigModeCode>
        <ShipToCnty>101038</ShipToCnty>
      </PickticketHeaderFields>
      <ListOfHdrInstructions>
        <PickticketHdrInstruction>
          <SpclInstrNbr>1</SpclInstrNbr>
          <SpclInstrType>03</SpclInstrType>
          <SpclInstrCode>01</SpclInstrCode>
          <PickticketInstrFields>
            <SpclInstrDesc>02 96 70 47 79</SpclInstrDesc>
          </PickticketInstrFields>
        </PickticketHdrInstruction>
        <PickticketHdrInstruction>
          <SpclInstrNbr>2</SpclInstrNbr>
          <SpclInstrType>03</SpclInstrType>
          <SpclInstrCode>01</SpclInstrCode>
          <PickticketInstrFields>
            <SpclInstrDesc>LIVRAISON IMPERATIVE LE 15 SEPTEMBRE</SpclInstrDesc>
          </PickticketInstrFields>
        </PickticketHdrInstruction>
      </ListOfHdrInstructions>
      <ListOfPickticketDetails>
        <PickticketDetail>
          <PktLineNbr>1</PktLineNbr>
          <SKU>
            <SKUDefinition>
              <SizeDesc>BT5S6</SizeDesc>
            </SKUDefinition>
          </SKU>
          <SubSKUFields>
            <BatchNumber>FRANCE</BatchNumber>
          </SubSKUFields>
          <PickticketDetailFields>
            <OrigOrderQty>5.00</OrigOrderQty>
            <OrigPktQty>5.00</OrigPktQty>
            <OriginalOrderLineNumber>1</OriginalOrderLineNumber>
            <RefField1>C06</RefField1>
          </PickticketDetailFields>
        </PickticketDetail>
      </ListOfPickticketDetails>
    </Pickticket>
    </Pickticket_1_5>
    Et voici mon fichier XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
    	<xsl:import href="communs.xsl"/>
    	<xsl:import href="PKMS.xsl"/>
    	<xsl:output omit-xml-declaration="yes"/>
    	<xsl:output method="xml" name="XMLFile" indent="yes"/>
    	<xsl:template match="OrderDate">
    		<!--ajout d'une balie avec la date courante et  avec l'heure courante (PktGenerationDate) après la balise OrderDate-->
    		<xsl:element name="{name()}">
    			<xsl:apply-templates select="* | text() | @*"/>
    		</xsl:element>
    		<xsl:text>
        </xsl:text>
    		<xsl:element name="PktGenerationDate">
    			<xsl:call-template name="Date_PKMS"/>
    		</xsl:element>
    	</xsl:template>
    	<xsl:template match="@*">
    		<xsl:copy/>
    	</xsl:template>
    	<xsl:template match="*">
    		<xsl:element name="{name()}">
    			<xsl:apply-templates select="* | text() | @*"/>
    		</xsl:element>
    	</xsl:template>
    </xsl:stylesheet>
    Merci de votre aide.

  2. #2
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Rajoutes dans le fichier xml l'encoding suivant encoding="ISO-8859-1"...
    Snoop

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    Je viens de rajouter encoding = "ISO-8859-1" et je n'ai plus de messages d'erreur. Par contre dans mon fichier XML généré suite à la transformation XSL les accents sont remplacés par des caractères bisarres, exemple :

    République devient République

  4. #4
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    il faut configurer ton output en sortie du XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:output 
          method = "xml" | "html" | "text" | qname-but-not-ncname 
          version = nmtoken 
          encoding = string 
          omit-xml-declaration = "yes" | "no" 
          standalone = "yes" | "no" 
          doctype-public = string 
          doctype-system = string 
          cdata-section-elements = qnames 
          indent = "yes" | "no" 
          media-type = string />
    Snoop

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    je viens de modifier mon fichier XSL pour spécifier l'encoding de l'outpout mais ça ne change rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="xml" name="XMLFile" indent="yes" encoding="ISO-8859-1"/>

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 48
    Points
    48
    Par défaut
    Je viens de reconfigurer mon output de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <xsl:output method="xml" encoding="ISO-8859-1" omit-xml-declaration="no" indent="yes"/>
    Et ça marche !

    Merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [xslt] filtrer des valeurs numériques
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/09/2005, 12h01
  2. [XSLT] Suppression des retours charriots
    Par Hoegaarden dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/08/2005, 16h51
  3. [XSLT] Réorganisation des données
    Par castaka dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2005, 18h24
  4. [xslt] Suppression des éléments sans contenu.
    Par dibbouk dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/06/2005, 17h17
  5. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo