用c 移除HTML外部鏈結及過濾非安全標籤

2022-04-29 19:42:08 字數 1782 閱讀 1247

剛開始嘗試用xdocument.parse()和正則式來解析html文件,但是疑難太多了。

要注意的是,錨點可以被加上有多個href屬性;同樣,某些元素可能會存在多個「onevent」屬性。

這是我第一次使用c#擴充套件方法和列舉,非常有趣。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using htmlagilitypack;

using system.text.regularexpressions;

namespace weblibrary

/// /// 一些測試的html字串替換擴充套件方法

///

public static class extensionmethods

/// /// html過濾

///

/// 源html字串

/// 過濾可選項

///

public static string replacehtml(this string htmlstring, replacehtmloptions option) ;

hdoc.loadhtml(htmlstring);

var needtostripunsafetages = option.hasflag(replacehtmloptions.stripunsafetages);

var needtodisableexternallinks = option.hasflag(replacehtmloptions.disableexternallinks);

var nodes = hdoc.documentnode.selectnodes("//*");

if (nodes != null)

});});

}return hdoc.documentnode.writeto();}}

}

用hap可以實現一種截斷html的方法。

/// /// html按指定長度截斷

///

/// 源html字串

/// 保留長度

///

public static string truncatehtml(this string htmlstring, int length) ;

hdoc.loadhtml(htmlstring);

var nodes = hdoc.documentnode.selectnodes("//*");

var countlength = 0;

var maxlength = length;

var lastnode =

nodes

.where(n => n.haschildnodes && n.childnodes.count.equals(1))

.takewhile(n =>

).lastordefault();

if (lastnode == null) return string.empty;

hdoc.loadhtml(htmlstring.substring(0, lastnode.streamposition));

return hdoc.documentnode.writeto();

}

c 內部鏈結 外部鏈結

c 內部鏈結與外部鏈結 2009年03月12日 星期四 11 07 在說內部連線與外部連線前,先說明一些概念。1.宣告 乙個宣告將乙個名稱引入乙個作用域 在c 中,在乙個作用域中重複乙個宣告是合法的 以下都是宣告 int foo int,int 函式前置宣告 typedef int int type...

外部鏈結用部落格真的權重低?

經常看到一些seo論壇有人提出用部落格作為 的外部鏈結效果不大,甚至有人提出klpzzfkajv沒有效果。bestchao在寫這篇文章之前也想參考一下是否有朋友寫過相關的文章,以及看下他們是怎麼看待部落格外鏈結的效果的。沒有找到相關的文章,還是我先來談談對此事的看法,有不妥的希望大家給予指正,一起 ...

HTML外部鏈結級基本選擇器

外部鏈結 鏈結式 語法 2建立css檔案,將css屬性寫道css檔案中 2在head標籤種使用link標籤進行css檔案的引入 rel relationship代表引入檔案與html的關係 type 告知瀏覽器,使用css解析器來解析css檔案 3屬性的寫法 屬性 屬性值 多個屬性之間使用分號 隔開...