相关疑难解决方法(0)

如何解析这段HTML?

早上好!我正在使用c#(框架3.5sp1),并希望通过正则表达式解析以下html片段:

<h1>My caption</h1>
<p>Here will be some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>

<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
Run Code Online (Sandbox Code Playgroud)

我需要以下输出:

  • 第1组:h1的含量
  • 第2组:h1后续文本的内容
  • group 3-n:子标题+文本的内容

我有什么atm:

<hr.*?/>
<h2.*?>(.*?)</h2>
([\W\S]*?)
<hr.*?/>
Run Code Online (Sandbox Code Playgroud)

由于尾随,这将给我每个奇怪的子标题+内容(例如,1,3,...)<hr/>.为了解析h1-caption我有另一个模式(<h1.*?>(.*?)</h1>),它只给我标题而不是内容 - 我对那个atm很好.

有没有人为我提供提示/解决方案或任何替代逻辑(例如通过阅读器解析html并以这种方式分配?)?

编辑:
正如一些HTMLAgilityPack带来的,我很好奇这个漂亮的工具.我完成了<h1>-tag的内容.
但是...我的问题是解析其余部分.这是由于:内容的标签可能会有所不同 - 从<p>to <div><ul>... atm这似乎或多或少地遍历整个文档并解析标签标签......?任何提示?

html c# html-agility-pack

3
推荐指数
2
解决办法
2181
查看次数

在C#中打开HTML文档

我想知道是否可以在不使用WebBrowser类的情况下打开HTML文档来编辑元素和属性; 我知道如何使用HTML中的函数来执行此操作,但不幸的是,我需要将编辑作为另一个程序(solidworks Enterprise PDM)的加载项的一部分进行,该程序仅允许使用C#和.NET 3.5.

我在考虑使用类似的东西:

FileStream UpdateHTML = new FileStream(filepath, FileMode.Open, FileAccess.Write);
Run Code Online (Sandbox Code Playgroud)

提供对html文档的写访问权限,但我不确定这是否是正确的路径.

.net html c#

3
推荐指数
1
解决办法
2115
查看次数

正则表达式从img标签获取src值

我使用以下正则表达式来获取HTML文档中src第一个img标记的值.

string match = "src=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:jpg|png))(?:\"|\')?"
Run Code Online (Sandbox Code Playgroud)

现在它捕获src了我不需要的总属性.我只需要src属性中的url .怎么做?

html c# regex

2
推荐指数
1
解决办法
1万
查看次数

提取数据网页

伙计们,我正在尝试使用C#从网页中提取数据..目前我使用了WebReponse中的Stream,并将其解析为一个大字符串.这是漫长而痛苦的.有人知道从网页中提取数据的更好方法吗?我说WINHTTP但不适合c#..

.net c#

2
推荐指数
1
解决办法
5780
查看次数

屏幕抓取是否有任何C#库?

有很多用于python,php的开源屏幕抓取库.但是我找不到任何.Net对应物.你能推荐任何用于屏幕抓取的库或只是html解析,这会让生活更轻松.

c# parsing screen-scraping

2
推荐指数
1
解决办法
3512
查看次数

我想捕获所有没有特定标签的标签

我想捕获名为'STRONG'的所有标签我可以使用<STRONG.*?</STRONG>这工作得很好但我不想捕获这些标签如果'SPAN'标签进来这些标签我想要这样的东西<STRONG.*(^(SPAN)).*?</STRONG> 是示例文本

<STRONG> For technical <SPAN id=PageBreak>101</SPAN> please</STRONG>
<SPAN id=PageBreak type="4">56</SPAN><STRONG> visit</STRONG>
Run Code Online (Sandbox Code Playgroud)

我想捕获第二个强标记,而不是第一个

.net c# regex

1
推荐指数
1
解决办法
217
查看次数

用于C#的HTML解析器

可能重复:
寻找C#HTML解析器

我做了一些谷歌搜索,并获得了一些点击,但我想知道是否有任何特定的现有代码库从人群中脱颖而出.非常感谢.

c#

0
推荐指数
1
解决办法
5160
查看次数

标签 统计

c# ×7

.net ×3

html ×3

regex ×2

html-agility-pack ×1

parsing ×1

screen-scraping ×1