2010-01-27 47 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