2

我试图在 xpath 字符串中转义引号,如下所示:

var mktCapNode = htmlDoc.DocumentNode.SelectSingleNode("//*[@id=""yfs_j10_a""]"); 

我想要传递的实际字符串是:

//*[@id="yfs_j10_a"]

这会产生编译器错误:) expected; expected

我敢肯定这很简单,但我很难过。有任何想法吗?

4

4 回答 4

7

您需要将其设为逐字字符串以将其""用作转义

@"//*[@id=""yfs_j10_a""]"

对于普通字符串文字,您需要使用反斜杠来转义双引号

"//*[@id=\"yfs_j10_a\"]"
于 2012-04-30T16:56:17.560 回答
2

或者使用转义字符'\':

"//*[@id=\"yfs_j10_a\"]"
于 2012-04-30T17:02:25.203 回答
1

在 C# 中,\ 字符用于转义(参见文档)。这与 VB 不同,在 VB 中没有转义字符,除了“”转义为“。

这意味着在 C# 中,您不需要 vbCrLf 来开始新行,也不需要 vbTab 来将制表符添加到字符串中。而是使用“\r\n”和“\t”。

您也可以使用 @ 字符使字符串成为文字,但我认为这不适用于引号。

于 2012-04-30T17:14:25.103 回答
1

@前缀添加到您的字符串。

@"//*[@id=""yfs_j10_a""]"

或用 a 转义引号\

"//*[@id=\"yfs_j10_a\"]"
于 2012-04-30T16:57:43.877 回答