簡體   English   中英

C#,轉義雙引號不按預期工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM