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 :

Caractère d'échappement pour l'apostrophe [XPATH 2.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Par défaut Caractère d'échappement pour l'apostrophe
    Bonjour à tous,

    J'ai développé un programme en C# dans lequel j'utilise des fichiers XML pour stocker des données. J'ai déjà posé le problème sur le forum C# mais n'ayant reçu aucune réponse, je tente ma chance ici.
    Donc, l'interrogation ainsi que l'insertion de nouvelles données fonctionne correctement en me servant de XPATH à une exception près: lorsque la valeur d'un noeud contient un apostrophe comme par exemple "Crémant-d'Alsace". Si je fais une demande de sélection comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string NomDénomination = "Crémant-d'Alsace";
    string sXPathQuery = "//Terroir[Dénomination = '" + NomDénomination + "']";
    Je reçois le message d'erreur m'indiquant que le jeton est non valide.
    Existe-t-il avec XPATH un caractère d'achappement me permettant d'utiliser les apostrophes ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si c'est bien du XPath 2.0, oui. Il suffit de doubler les ' qui doivent être échappés.

    Si c'est en réalité du XPath 1.0, non.

    Il n'y a que deux solutions :

    - changer de délimiteur

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    "//Terroir[Dénomination = \"" + NomDénomination + "\"]"

    - pour des trucs genre Crémant-d'Alsace "amélioré" (qui contiennent à la fois des apostrophes et des guillemets,) concaténation :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string NomDénomination = "concat(\"Crément-d'Alsace \", '\"amélioré\"')";
    string sXPathQuery = "//Terroir[Dénomination = NomDénomination ]";
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Par défaut
    Merci Thelvin pour ces informations très complètes. Effectivement, je ne travaille qu'avec XPATH 1.0 et cela fonctionne avec un autre délimiteur.
    Etrange quand même que je n'ai trouvé ces informations dans aucun livre ou tutoriel.

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

Discussions similaires

  1. [LibreOffice][Tableur] Caractère d'échappement pour macro calc
    Par tikanak dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 18/07/2014, 15h23
  2. caractère d'échappement pour les requêtes
    Par sokhon dans le forum SDK
    Réponses: 3
    Dernier message: 15/04/2009, 03h00
  3. SQL et GUID : Valeur de caractère non valide pour la ....
    Par jackfirst72 dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/03/2007, 10h46
  4. caractère d'échappement pour un '
    Par alexfrere dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 04/07/2006, 11h07
  5. caractéres d'échappements
    Par kleenex dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 12h46

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