我试图在xpath字符串中转义引号,如下所示:
var mktCapNode = htmlDoc.DocumentNode.SelectSingleNode("//*[@id=""yfs_j10_a""]");
我想传递的实际字符串是:
//*[@id="yfs_j10_a"]
这会产生编译错误:) expected
和; expected
我确信这很简单,但我很难过。有什么想法吗?
答案 0 :(得分:7)
您需要将此字符串作为逐字字符串,以使用""
作为转义
@"//*[@id=""yfs_j10_a""]"
对于普通的字符串文字,您需要使用反斜杠来转义双引号
"//*[@id=\"yfs_j10_a\"]"
答案 1 :(得分:2)
或使用转义字符'\':
"//*[@id=\"yfs_j10_a\"]"
答案 2 :(得分:1)
将@
前缀添加到字符串中。
@"//*[@id=""yfs_j10_a""]"
或使用\
"//*[@id=\"yfs_j10_a\"]"
答案 3 :(得分:1)
在C#中,\字符用于转义(参见documentation)。 这与VB不同,除了“逃逸到”之外没有转义字符。
这意味着在C#中,您不需要vbCrLf来启动新行,也不需要vbTab来向字符串添加制表符。而是使用“\ r \ n”和“\ t”。
您也可以使用@字符将字符串设为文字,但我认为这不适用于引号。