【发布时间】:2013-10-23 15:30:20
【问题描述】:
我有喜欢的html
...<button type="submit" name="ctl00$ctl16$ctl00$ctl00$searchButton" value=""
id="ctl00_ctl16_ctl00_ctl00_searchButton" type="submit" class="search-submit" value="Search">...
并且需要通过程序删除重复的标签,例如 type="submit" 。是否可以不使用 HTMLAgilityPack 之类的库?例如正则表达式。
【问题讨论】:
-
有可能吗?好吧,C# 是图灵完备的,所以可以肯定。 RegExp,就其本身而言,没有。 HTMLAgilityPack 有什么问题?
-
我无法在该任务中使用任何库。用于挑战的任务 HTMLParser 的那部分。
-
但是不能只修改原来的ASPX吗?我的意思是,这显然是 ASP.NET,所以我认为您没有理由去更正生成的 HTML。下次生成时,您将再次拥有重复的属性。
-
这是我试图解析的来自microsoft.com/ru-by/default.aspx 的html 的一部分。整个任务是从 html 中获取所有 css 文件,并在该页面上搜索未使用的样式而不使用库。我的解决方案是 - 从 css 选择器 xpathes 制作,并使用 Xdocument。但是方法 Xdocument.Parse 在任何无效的 html 上都失败了,所以我做了解析前清理:)
-
我想我找到了解决方案。但不是最好的。我使用 XDocument.Parse,并得到 @"'(.*)' 是一个重复的属性名称。行 (\d),位置 (\d*)。";异常,然后我用正则表达式解析它并用它的值替换属性 html