2011-09-10 155 views
0

我有字符串包含HTML,我想添加到該HTML字符串的一些屬性。C#如何將自定義屬性添加到HTML字符串?

.NETi中是否有任何html解析器/編輯器類可以用來做這件事?

例如我在該html中有標籤<script>,並且我想將屬性src="somesrtpath"添加到所有這些標籤。

我會有可能只是有一個情況下HTML將包含在開始像

<script type="text/javascript" `<add hrere src>` > 
</script> 
<script type="text/javascript" `<add hrere src>`> 
</script> 

基本上只有兩個腳本標記什麼,我想這樣做只是說一些功能 - 這裏是HTML爲每個腳本標籤添加這個SRC

+1

你在Windows窗體或ASP.NET?你真的只有在一個字符串或在頁面的HTML? –

+0

@Davide Piras我有一段html生成的讓我們說一些'blackbox',所以在它生成之後,我想修改它,正如我在我的問題中所描述的那樣,基本上我正在構建'htmlhelper' – halera

回答

0

如果你的HTML是一個字符串,你一定可以分析它,並與操縱它:在所以這裏

HTML Agility Pack,大量的,真的,很多例子......

+1

,所以沒有辦法這樣做沒有任何第三方的DLL? – halera

+0

有,但你基本上實現你自己的解析,這很可能會破壞,永遠不會在同一水平。顯示一些用例來編輯你的問題,如果你需要做的只是添加src到腳本標記而不是你自己可以做的那麼簡單,但如果你需要更多的東西,讓我們重複使用,而不是重新發明同樣的東西...... –

0

如果您將HTML作爲字符串獲取,則可以使用.IndexOf("<script ")來查找腳本。

for (int scriptStart = htmlContent.IndexOf("<script "); scriptStart > -1; scriptStart = htmlContent.IndexOf("<script ", scriptStart + 1)) 
{ 
    // Find position of the type= bit. 
    int typeAttributeIndex = htmlContent.IndexOf("type=\"text/javascript\"", scriptStart); 

    htmlContent.Insert(typeAttributeIndex + 22, " src=\"something\""); 
} 

這是有點快和骯髒。如果你想多清理一下,你可以使用正則表達式來確保你正確匹配腳本標記。您還可以匹配腳本塊的末尾來查找>,但請注意腳本標記可以是<script ... ></script>或有時<script ... />。在/之後放置src會導致問題。

相關問題