XPath et les apostrophes

romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 26 déc. 2006 à 18:43
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 28 déc. 2006 à 12:37
Bonsoir
j'ai un probleme avec mes expressions Xpath et plus particulierement lorsqu'il y a une apostrophe, cela me renvoie une exception(style la chaine a pas ete fermée ou autre)
en fait cest lorsque je passe une variable dans la construction de ma chaine XPATh qui contient elle une apostrophe que cela pose pb
ex:
string sXPath = "//departement[ville=\'" + unevariable + "\']"; // cetet variable peut avoir une apostrophe
oXmlNode=oXmlDocument.SelectSingleNode(sXPath);

j'ai essaye avec string.Format
avec @ devant la chaine cela ne marche pas lorsuqe ya une variable qui elle contient une apostrophe donc je sais plus
une idée ?

merci

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 déc. 2006 à 21:26
Salut,

En fait le mieux est encore de passer par des expressions "paramétrées", au même titre que les requêtes paramétrée en SQL, avec aussi le même intérêt côté sécurité :-)

La méthode "standard" est un peu ... : http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q324462

Mais heureusement il existe le projet Mvp.Xml pour nous simplifier la vie, sous forme condensée ça donne :
XmlNode node = XPathCache.SelectSingleNode("//departement[ville=$nomVille]", doc, new XPathVariable("nomVille", unevariable));

Du coup tu gagnes en perfs et en sécurité.

/*
coq
MVP Visual C#
CoqBlog
*/
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
27 déc. 2006 à 01:50
merci coq
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
27 déc. 2006 à 11:52
j'ai peut etre trouver une solution simple en en passant par innerXML ... il faut que je voie plus loin cette piste
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 déc. 2006 à 17:54
Plus simple ?

/*
coq
MVP Visual C#
CoqBlog
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
28 déc. 2006 à 12:37
erf nan pas plus simple, et on peut se retrouver pieger quand meme , disons que ela peut aller tant que l'in utilise la position du node pour acceder (ex "/Departements/Departement/ville[2]")
mais bon pour moi le dom c'est mort si on peut pas ajouter d'apostrophes, c'est comme dire un peu "monsieur il ne faut pas que vous saisissiez d'apostrophes dans votre document word car cela va generer des erreurs lool"

donc je vais etudier ta solution a tete reposée lol
0
Rejoignez-nous