2011-09-10 117 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会导致问题。

相关问题