私は次のように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\"]"
@
文字列にプレフィックスを追加します。
@"//*[@id=""yfs_j10_a""]"
または引用符をエスケープします\
"//*[@id=\"yfs_j10_a\"]"
C#では、\文字を使用してエスケープします(ドキュメントを参照)。これは、「」にエスケープする「」以外にエスケープ文字がないVBとは異なります。
つまり、C#では、新しい行を開始するためにvbCrLfを使用したり、文字列にタブ文字を追加するためにvbTabを使用したりする必要はありません。代わりに「\r\n」と「\t」を使用してください。
@文字を使用して文字列をリテラルにすることもできますが、これは引用符では機能しないと思います。