Fizzler HTMLAgilityPack 콜론이있는 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']");


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.