2010-01-27 33 views
3

我有字符串我想逃避用于XPath查询。在C#中,我可以通过调用SecurityElement.Escape来完成此操作。在经典的ASP中是否有相同的调用?如何转义经典ASP中的字符串以用于XPath查询?

+0

Rob,你能否提供更多的上下文。针对“MSXML.DOMDocument”执行XPath将无法使用接受的答案。因此你必须做其他事情。 – AnthonyWJones 2010-01-27 18:24:12

+0

对不起,如果我更改xml以包含文本的转义版本,它确实有效。更具体的http://stackoverflow.com/questions/2148884/why-is-the-proper-xpath-query-to-find-the-value-in-this-xml-document是我遇到的问题。 – 2010-01-27 21:15:33

回答

3

不,你需要自己处理字符串转义。

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

该死的。以为我可能必须这样做。谢谢。 – 2010-01-27 17:16:14

+2

如果转义到'''等等,我应该感到惊讶,因为这是在XPath中没有意义的XML实体。 – Tomalak 2010-01-27 17:50:49

+0

@Tomalak:+1是的,我很惊讶Rob已经发现这个工作。 – AnthonyWJones 2010-01-27 18:19:04

相关问题