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 :

[XSL] &#xA; <-- le problème le plus ennuyeux du monde


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut [XSL] &#xA; <-- le problème le plus ennuyeux du monde
    alors voila...
    j ai un script qui récupère le nom des elements et leur text() dans un attribut afin de faire une comparason ultérieure...
    le problème est que souvent je me retrouve avec &#xA; écrit entre deux text et franchement je n ai aucune idée d'où cela peut provenir et ceci flingue complètement ma comparaison car tout est toujours différent du coup...
    Je peux essayer de faire un replace de cette chaîne mais honnêtement ce ne serait pas très propre...
    une idée?
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     <xsl:template match="*" mode="extractTxt">
    	 <xsl:text>_e_</xsl:text><xsl:value-of select="name()"/><xsl:apply-templates select="node()" mode="extractTxt"/><xsl:text>_e_</xsl:text>
     </xsl:template>
      <xsl:template match="x:cite | x:strong | x:em" mode="extractTxt">
    	<xsl:apply-templates select="node()" mode="extractTxt"/>
     </xsl:template>
      <xsl:template match="e:A" mode="extractTxt">
    	<xsl:value-of select="@Ref"/>
     </xsl:template>

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    Même en faisant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:template match="text()" mode="extractTxt"><xsl:value-of select="translate(.,'&#xA;','  ')"/></xsl:template>
    j obtient un bon attribut alors que l autre passe comme une fleur...
    vraiment je ne comprend pas
    InsTxt="_e_x:span_e_x:p_e_x:spanNedanstående måttenheter skall användas vid förbindelse med svenska civila luftfartsstationer. Vid förbindelse "
    DelTxt="_e_x:span_e_x:p_e_x:spanNedanstående måttenheter skall användas vid&#xA; förbindelse med svenska civila luftfartsstationer. Vid&#xA; förbindelse "
    le même template est executé...je commence à m arracher les cheveux

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    donne l'extrait XML qui est l'origine de l'exemple que tu cites.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    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
    			<x:td colspan="4" valign="top" class="w346 ">
    				<x:span Updated="Inserted" id="INS--35" Updated-ref="AMDT-" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
    					<x:p class="GENENRTextBodySwedish">
    						<x:span>Nedanstående måttenheter skall användas vid
    förbindelse med svenska civila luftfartsstationer. Vid
    förbindelse med svenska militära luftfartsstationer skall
    de enheter användas, som framgår av respektive noter i
    tabellen. På begäran kan i stället de
    måttenheter som används vid förbindelse med svenska
    civila luftfartsstationer användas. Vid angivande av
    avstånd som grundar sig på användning av radar
    begagnar ATS dock endast den enhet som använd radarutrustning
    visar. <e:Abbreviation Ref="AIP"/>
    						</x:span>
    					</x:p>
    				</x:span>
    				<x:span Updated="Deleted" id="INS--35" Updated-ref="AMDT-" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
    					<x:p class="GENENRTextBodySwedish">
    						<x:span>Nedanstående måttenheter skall användas vid
    förbindelse med svenska civila luftfartsstationer. Vid
    förbindelse med svenska militära luftfartsstationer skall
    de enheter användas, som framgår av respektive noter i
    tabellen. På begäran kan i stället de
    måttenheter som används vid förbindelse med svenska
    civila luftfartsstationer användas. Vid angivande av
    avstånd som grundar sig på användning av radar
    begagnar ATS dock endast den enhet som använd radarutrustning
    visar. AIP</x:span>
    					</x:p>
    				</x:span>
    			</x:td>
    petite précision, j utilise msxsl

    [edit] je viens de remettre un bout de code au dessus car il manquait un attribut updated

  5. #5
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    voila le xsl complet

    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
    <?xml version="1.0" encoding="UTF-16"?>
    <!--ici on compare chaque élément inserted avec son équivalent deleted.
    	on évalue si le status modify est du à l ajout d une balise type
    	x:cite | x:strong | x:em | e:Abbreviation
    	si c est le cas, on annule la modification-->
    <xsl:stylesheet version="1.0" 
    					 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    					 xmlns:fo="http://www.w3.org/1999/XSL/Format"
     					 xmlns:e="http://www.eurocontrol.int/xmlns/AIM/eAIP" 
    					 xmlns:x="http://www.w3.org/1999/xhtml">
    <xsl:strip-space elements="*"/>
    <xsl:variable name="indent" select="string('&#xA;')"/>
     <xsl:template match="/">
    	 <xsl:apply-templates select="node()"/> 
     </xsl:template>
     <xsl:template match="*">
    	 <xsl:copy><xsl:apply-templates select="node() | @*"/></xsl:copy>
     </xsl:template>
     
     <xsl:template match="*[@Updated='Inserted']">
    	 <xsl:variable name="txtInserted">
    		 <xsl:apply-templates select="." mode="extractTxt"/>
    	 </xsl:variable>
    	 <xsl:variable name="txtDeleted">
    		 <xsl:apply-templates select="following-sibling::*[@Updated='Deleted'][1]" mode="extractTxt"/>
    	 </xsl:variable>
    	<xsl:choose>
    		<xsl:when test="$txtDeleted=$txtInserted">
     
    			<xsl:copy-of select="*"/>
    		</xsl:when>
    		<xsl:otherwise>
    			<xsl:copy>
    				<xsl:attribute name="InsTxt"><xsl:value-of select="$txtInserted"/></xsl:attribute>
    				<xsl:attribute name="DelTxt"><xsl:value-of select="$txtDeleted"/></xsl:attribute>
    				<xsl:copy-of select="@*"/>
    				<xsl:copy-of select="* | text()"/>
    			</xsl:copy>
    			<xsl:copy-of select="following-sibling::*[@Updated='Deleted'][1]"/>
    		</xsl:otherwise>
    	</xsl:choose>
     </xsl:template>
     <xsl:template match="*[@Updated='Deleted']"/>
     
     <xsl:template match="*" mode="extractTxt"><xsl:text>_e_</xsl:text><xsl:value-of select="name()"/><xsl:apply-templates select="node()" mode="extractTxt"/><xsl:text>_e_</xsl:text></xsl:template>
      <xsl:template match="x:cite | x:strong | x:em" mode="extractTxt"><xsl:apply-templates select="node()" mode="extractTxt"/></xsl:template>
      <xsl:template match="e:Abbreviation" mode="extractTxt"><xsl:value-of select="@Ref"/></xsl:template>
     <xsl:template match="text()" mode="extractTxt"><xsl:value-of select="translate(.,'&#xA;','  ')"/></xsl:template>
     
     <xsl:template match="processing-instruction()"><xsl:copy/></xsl:template>
     <xsl:template match="text() | @*"><xsl:copy-of select="."/></xsl:template>
     
     
     
     
    </xsl:stylesheet>

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    je suis toujours sur ce problème et francehement ou je suis bigleux ou je suis dingue mais je voies vraiment pas.

    Le texte provient de Word -> tidy XHTML -> transfo XSL

  7. #7
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    alors? personne?

Discussions similaires

  1. Problème SQL*Plus (sql+ ko tnsping ok oraoledb ok)
    Par manuel.flury dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 27/08/2008, 17h09
  2. Réponses: 2
    Dernier message: 08/07/2008, 19h35
  3. Problème adresse plus grande que 256 caractères
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2008, 16h32
  4. Réponses: 2
    Dernier message: 04/06/2008, 16h27
  5. Problème Audio --> Plus de son ... :-(
    Par snoopy69 dans le forum Composants
    Réponses: 3
    Dernier message: 19/02/2006, 00h39

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