Fizzler HTMLAgilityPack c#コロン付きCSSセレクタ

c# css-selectors fizzler html-agility-pack

質問

私はHTMLAgilityPackを使用していますが、その中にコロンで要素IDを選択しようとしています。

Using Fizzler.Systems.HtmlAgilityPack;

テスト#1(未知の擬似クラス)

HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox:test");

テスト#2(位置16で無効な文字)

HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\\:test");

テスト#3(認識されないエスケープシーケンス)

HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\3A test");

テスト#4(位置16で無効な文字)

HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\\3A test");

私は間違って何をしていますか?

私はFizzlerのソースコードを見ました。

 // TODO Support full string syntax!
 //
 // string    {string1}|{string2}
 // string1   \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\"
 // string2   \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\'
 // nonascii  [^\0-\177]
 // escape    {unicode}|\\[^\n\r\f0-9a-f]
 // unicode   \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?
 //

彼らはまだそれをサポートしていません:(

人気のある回答

\3Aので、コンパイル時エラーで\3 C#の文字列で有効なエスケープシーケンスではありませんので、あなたは、バックスラッシュをエスケープする必要があります。 \\:または\\3Aどちらかを使用するのは正しいですが、何らかの理由でセレクタエンジンがCSSのエスケープシーケンスに問題があるようです。

代わりにエスケープシーケンスの必要性を取り除く属性セレクタでこれを回避できるかどうかを確認してください:

HtmlNodeSelection.QuerySelectorAll(_htmlDocument.DocumentNode, "[id='unlocktheinbox:test']");


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ