C#,转义双引号不按预期工作

Sta*_*Csh 2 .net c# c#-4.0

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

var mktCapNode = htmlDoc.DocumentNode.SelectSingleNode("//*[@id=""yfs_j10_a""]"); 
Run Code Online (Sandbox Code Playgroud)

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

//*[@id="yfs_j10_a"]
Run Code Online (Sandbox Code Playgroud)

这给出了编译器错误:) expected; expected

我确信这很简单,但我很难过.有任何想法吗?

Jar*_*Par 7

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

@"//*[@id=""yfs_j10_a""]"
Run Code Online (Sandbox Code Playgroud)

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

"//*[@id=\"yfs_j10_a\"]"
Run Code Online (Sandbox Code Playgroud)

  • 或者像这样转义引号:"//*[@ id = \"yfs_j10_a \"]"但是逐字字符串更容易阅读(只是提到它,所以你知道可能性). (2认同)