2010-01-27 4 views
3

J'ai une chaîne que j'aimerais échapper pour l'utiliser dans une requête XPath. En C#, je suis capable de le faire en appelant le SecurityElement.Escape. Y a-t-il un appel équivalent en ASP classique?Comment puis-je échapper une chaîne dans ASP classique pour une utilisation dans une requête XPath?

+0

L'exécution d'un XPath sur un 'MSXML.DOMDocument' ne fonctionnera pas en utilisant la réponse acceptée. Par conséquent, vous devez faire quelque chose d'autre. – AnthonyWJones

+0

Désolé, cela a fonctionné si je change le xml pour contenir les versions d'échappement du texte. Plus précisément http://stackoverflow.com/questions/2148884/why-is-the-proper-xpath-query-to-find-the-value-in-this-xml-document est le problème que je rencontrais. –

Répondre

3

Non, vous aurez besoin de faire face à la chaîne échapper vous-même. Rob, pouvez-vous fournir plus de contexte?

xpath = "//node[@attribute='" & SecurityElementEscape(value) & "']" 

Function SecurityElementEscape(value) 
    SecurityElementEscape = 
     Replace(Replace(Replace(Replace(Replace(value, 
      "&" , "&"), '' // must be first one 
      "<" , "&lt;" ), 
      ">" , "&gt;" ), 
      """", "&quot;"), 
      "'" , "&apos;") 
End Function 
+0

Merde. Je pensais que je devrais faire ça. Merci. –

+2

Je serais surpris si échapper à ''' etc travaillé, car ce sont des entités XML qui n'ont aucune signification dans XPath. – Tomalak

+0

@Tomalak: +1 Oui, je suis surpris que Rob a trouvé cela au travail. – AnthonyWJones

Questions connexes