我试图在 xpath 字符串中转义引号,如下所示:
var mktCapNode = htmlDoc.DocumentNode.SelectSingleNode("//*[@id=""yfs_j10_a""]");
我想要传递的实际字符串是:
//*[@id="yfs_j10_a"]
这会产生编译器错误:) expected
和; expected
我敢肯定这很简单,但我很难过。有任何想法吗?
您需要将其设为逐字字符串以将其""
用作转义
@"//*[@id=""yfs_j10_a""]"
对于普通字符串文字,您需要使用反斜杠来转义双引号
"//*[@id=\"yfs_j10_a\"]"
或者使用转义字符'\':
"//*[@id=\"yfs_j10_a\"]"
在 C# 中,\ 字符用于转义(参见文档)。这与 VB 不同,在 VB 中没有转义字符,除了“”转义为“。
这意味着在 C# 中,您不需要 vbCrLf 来开始新行,也不需要 vbTab 来将制表符添加到字符串中。而是使用“\r\n”和“\t”。
您也可以使用 @ 字符使字符串成为文字,但我认为这不适用于引号。
将@
前缀添加到您的字符串。
@"//*[@id=""yfs_j10_a""]"
或用 a 转义引号\
"//*[@id=\"yfs_j10_a\"]"