encoding="utf-8"
?>
<
articles
>
<
article
>
<
title
>在asp.net中使用highcharts js圖表
title
>
<
url>
url>
<
createat
type="en"
>2011-04-07
price
>
article
>
<
article
>
<
title
lang="eng"
>log4net使用詳解(續)
title
>
<
url>
url>
<
createat
type="zh-cn"
>2023年11月23日
price
>
article
>
<
article
>
<
title
>j2me開發的一般步驟
title
>
<
url>
url>
<
createat
type="zh-cn"
>2023年06月12日
price
>
article
>
<
article
>
<
title
lang="eng"
>powerdesign高階應用
title
>
<
url>
url>
<
createat
type="zh-cn"
>2007-09-08
price
>
article
>
articles
>
針對上面的xml檔案,我們列出了帶有謂語的一些路徑表示式,以及表示式的結果:
/articles/article[1]:選取屬於articles子元素的第乙個article元素。
/articles/article[last()]:選取屬於articles子元素的最後乙個article元素。
/articles/article[last()-1]:選取屬於articles子元素的倒數第二個article元素。
/articles/article[position()<3]:選取最前面的兩個屬於 bookstore 元素的子元素的article元素。
//title[@lang]:選取所有擁有名為lang的屬性的title元素。
//createat[@type='zh-cn']:選取所有createat元素,且這些元素擁有值為zh-cn的type屬性。
/articles/article[order>2]:選取articles元素的所有article元素,且其中的order元素的值須大於2。
/articles/article[order<3]/title:選取articles元素中的article元素的所有title元素,且其中的order元素的值須小於3。
htmlagilitypack api簡明介紹
在htmlagilitypack中常用到的類有htmldocument、htmlnodecollection、
htmlnode和htmlweb等。
其流程一般是先獲取html,這個可以通過htmldocument的load()或loadhtml()來載入靜態內容,或者也可以htmlweb的get()或load()方法來載入網路上的url對應的html。
得到了htmldocument的例項之後,就可以用htmldocument的documentnode屬性,這是整個html文件的根節點,它本身也是乙個htmlnode,然後就可以利用htmlnode的selectnodes()方法返回多個htmlnode的集合物件htmlnodecollection,也可以利用htmlnode的selectsinglenode()方法返回單個htmlnode。
htmlagilitypack實戰
下面是乙個解析csdn部落格的**例項:
using system;using system.collections.generic;
using system.text;
using htmlagilitypack;
using system.text.regularexpressions;
";
list.add(category);
category.categorydetails.add(category.indexurl, category);
} return list;
} }
}
using system;using system.collections.generic;
using system.text;
using htmlagilitypack;
using system.text.regularexpressions;
";
list.add(category);
category.categorydetails.add(category.indexurl, category);
} }
return list;
} } }
總結:htmlagilitypack確實是乙個功能強大、體積小的開源html解析類庫,在本篇僅僅是介紹了其中幾個類的用法,但光這些就足以供周公快速實現了許久沒有實現的功能,如果讓周公用正規表示式來實現類似的功能,時間肯定要比用這個長得多。
說明:周公最近也在琢磨一些關於微博的應用,如果有相同愛好者或者在使用微博的讀者,請圍觀周公的微博,**是:
2011-06-24
周公
HTML解析利器HtmlAgilityPack
xmlversion 1.0 encoding utf 8 articles article title 在asp.net中使用highcharts js圖表 title url url createat type en 2011 04 07 price article article title ...
HTML解析利器HtmlAgilityPack
xmlversion 1.0 encoding utf 8 articles article title 在asp.net中使用highcharts js圖表 title url url createat type en 2011 04 07 price article article title ...
HTML解析利器HtmlAgilityPack
xmlversion 1.0 encoding utf 8 articles article title 在asp.net中使用highcharts js圖表 title url url createat type en 2011 04 07 price article article title ...