解析在线图书的页面并保存页面及其页脚的内容而不做任何更改

时间:2016-08-02 10:58:07

标签: c# parsing html-agility-pack

<article class="js_IntraTCBP IntraTCBP dr tr lh2 js_lblContent" id="js_lblContent"><p></p>text
<p></p><p></p><a name="p1"></a><a name="p1"></a><a name="p1"></a><a name="p1"></a><a name="p1"></a><h1>text</h1><p></p><p></p>text
<p></p>text<sup>1</sup>
<p></p>text<sup>2</sup>
<p></p>text<sup>3</sup>
<p></p>text<sup>4</sup>text<p></p><hr class="Footer"><p></p><font class="Footer"><p></p>1-ddd
<p></p>2-ccc

<p></p>3-bbb

<p></p>4-aaa

</font></article>

的文本

文本

的文本

文本 1

文本 2

文本 3

文本 4 文本

1-DDD

2-CCC

3-BBB

4-AAA

我想解析在线图书的页面并保存页面内容而不做任何更改。

当我使用它时:

var pageContent = document.DocumentNode.SelectNodes(“// article [@ class ='js_IntraTCBP IntraTCBP dr tr lh2 js_lblContent'] / text()”);

它让我所有的'文字'。

我怎样才能获得所有页脚。例如text1 ----&gt; 1 = DDDD。就像我在书页中看到的一样。

1 个答案:

答案 0 :(得分:0)

您可以尝试正则表达式或正则表达式,它们是表示要搜索的字符串或模式的字符和符号序列。 System.Text.RegularExpressions.Regex class - MSDN

您可以使用Regex.Matches来匹配某些html元素,但您必须遍历每一行。这将帮助您入门:

// loop...

var matches = Regex.Match(line, @"(\<[\w]*\>|[^\s]*([^<]*)\<\/[\w]*\>)");

要获取包含内容的标记:

string tag = matches.Groups[1].Value;

要获取内容,请不要使用标记:

string content = matches.Groups[2].Value;

Demo。它可以检测到一些元素,但不是全部。

以下是一些可能有助于学习它的链接: