使用htmlagilitypack从Html页面提取特定文本

时间:2010-11-19 17:15:16

标签: html

嘿,我的大部分问题都已解决,但我没什么问题

这是Html

<tr>
<td class="ttl">&nbsp;
</td>
<td class="nfo">- MP4/H.263/H.264/WMV player<br />
- MP3/WAV/&#1077;AAC+/WMA player<br />
- Photo editor<br />
- Organizer<br />
- Voice command/dial<br />
- Flash Lite 3.0<br />
- T9</td>

</tr>

目前我正在使用Stackoverflow用户提供的此代码

 var text1 = htmlDoc.DocumentNode.SelectNodes("//td[@class='nfo']")[1].InnerHtml;
         textBox1.Text = text1;

知道问题它正在获取所有文本 与<br> 我如何从中删除<br>并放在它们之间 它看起来应该是这样的

MP4/H.263/H.264/WMV player,- MP3/WAV/еAAC+/WMA player,- Photo editor,- Organizer,- Voice command/dial,- Flash Lite 3.0,- T9

还有如何获得这个

<div id="ttl" class="brand">
<h1>Nokia C5-03</h1>
<p><a href="nokia-phones-1.php"><img src="http://img.gsmarena.com/vv/logos/lg_nokia.gif" alt="Nokia" /></a></p>
</div>

我正在尝试这个

  

var text41 =   htmlDoc.DocumentNode.SelectNodes(&#34; //格   ID [@class =&#39;品牌&#39;]&#34;)[0] .InnerText;

我收到无效的令牌错误  我只想要没有诺基亚文字的C5-03

1 个答案:

答案 0 :(得分:0)

您只需使用string.Replace("<br />", "");即可删除<br />代码。

更好的是,使用InnerText代替InnerHtml,因此不会出现HTML:

var text1 = htmlDoc.DocumentNode.SelectNodes("//td[@class='nfo']")[1].InnerText;

如果您确实想要用<br />替换所有,代码,则确实需要使用Replace

text1.Replace("<br />", ",");

要选择<H1>标记中的值,您可以使用:

var text42 = htmlDoc.DocumentNode.SelectNodes("//div[id='ttl']"/h1)[0].InnerText;