首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Colon的HTMLAgilityPack c# CSS选择器

带有Colon的HTMLAgilityPack c# CSS选择器
EN

Stack Overflow用户
提问于 2016-03-02 16:36:38
回答 1查看 1.2K关注 0票数 0

我使用的是HTMLAgilityPack,我试图选择一个元素ID,其中包含一个冒号。

代码语言:javascript
复制
Using Fizzler.Systems.HtmlAgilityPack;

测试#1 (未知伪类)

代码语言:javascript
复制
HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox:test");

测试2(位置16的无效字符)

代码语言:javascript
复制
HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\\:test");

测试#3 (未识别的转义序列)

代码语言:javascript
复制
HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\3A test");

测试4(位置16的无效字符)

代码语言:javascript
复制
HtmlNodeSelection.QuerySelectorAll( _htmlDocument.DocumentNode,"#unlocktheinbox\\3A test");

我做错了什么?

发现我看了Fizzler的源代码..

代码语言:javascript
复制
 // 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])?
 //

他们现在还不支持

EN

回答 1

Stack Overflow用户

发布于 2016-03-02 16:42:15

\3A是编译时错误,因为\3不是C#字符串中的有效转义序列,因此需要转义反斜杠。使用\\:\\3A都是正确的,但由于任何原因,选择器引擎似乎在使用CSS转义序列时遇到了问题。

看看是否可以使用属性选择器来解决这个问题,这样就完全不需要转义序列了:

代码语言:javascript
复制
HtmlNodeSelection.QuerySelectorAll(_htmlDocument.DocumentNode, "[id='unlocktheinbox:test']");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35753051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档