[英]C#, escape double quote not working as expected
我試圖在xpath字符串中轉義引號,如下所示:
var mktCapNode = htmlDoc.DocumentNode.SelectSingleNode("//*[@id=""yfs_j10_a""]");
我想傳遞的實際字符串是:
//*[@id="yfs_j10_a"]
這給編譯器錯誤:) ) expected
和; expected
; expected
我確信這很簡單,但我很難過。 有任何想法嗎?
您需要將其作為逐字字符串,以使用""
作為轉義
@"//*[@id=""yfs_j10_a""]"
對於普通的字符串文字,您需要使用反斜杠來轉義雙引號
"//*[@id=\"yfs_j10_a\"]"
或者使用轉義字符'\\':
"//*[@id=\"yfs_j10_a\"]"
在字符串中添加@
前綴。
@"//*[@id=""yfs_j10_a""]"
或用一個\\
逃避報價
"//*[@id=\"yfs_j10_a\"]"
在C#中,\\字符用於轉義(參見文檔 )。 這與VB不同,除了“逃脫到”之外沒有轉義字符。
這意味着在C#中,您不需要vbCrLf來啟動新行,也不需要vbTab來向字符串添加制表符。 而是使用“\\ r \\ n”和“\\ t”。
您也可以使用@字符使字符串成為文字,但我認為這不適用於引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.