如何将某些字符串插入另一个字符串的特定部分。我想要实现的是我的变量中有一个像这样的html字符串string stringContent;
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="Viewport" content="width=320; user-scaleable=no;
initial-scale=1.0">
<style type="text/css">
body {
background: black;
color: #80c0c0;
}
</style>
<script>
</script>
</head>
<body>
<button type="button" onclick="callNative();">Call to Native
Code!</button>
<br><br>
</body></html>
我需要在<script> <script/>
标记
function callNative()
{
window.external.notify("Uulalaa!");
}
function addToBody(text)
{
document.body.innerHTML = document.body.innerHTML + "<br>" + text;
}
我如何在C#中实现这一目标。
答案 0 :(得分:6)
假设您的内容存储在字符串content
中,您可以首先找到脚本标记:
int scriptpos = content.IndexOf("<script");
然后跳过脚本标记的结尾:
scriptpos = content.IndexOf(">", scriptpos) + 1;
最后插入新内容:
content = content.Insert(scriptpos, newContent);
这至少允许脚本标记中的潜在属性。
答案 1 :(得分:2)
使用htmlString.Replace(what, with)
var htmlString = "you html bla bla where's the script tag? oooups here it is!!!<script></script>";
var yourScript = "alert('HA-HA-HA!!!')";
htmlString = htmlString.Replace("<script>", "<script>" + yourScript);
请注意,这会在所有yourScript
元素中插入<script>
。
答案 2 :(得分:2)
var htmlString = @"<script>$var1</script> <script>$var2</script>"
.Replace("$var1", "alert('var1')")
.Replace("$var2", "alert('var2')");
答案 3 :(得分:1)
var htmlString = "you html bla bla where's the script tag? oooups here it is!!!<script></script>";
var yourScript = "alert('HA-HA-HA!!!')";
htmlString = htmlString.Insert(html.IndexOf("<script>") + "<script>".Length + 1, yourScript);
答案 4 :(得分:1)
为此,您可以使用File.ReadAllText方法将html文件读入字符串。这里例如,我使用了样本html字符串。之后,通过一些字符串操作,您可以在脚本下添加标签,如下所示。
string text = "<test> 10 </test>";
string htmlString =
@" <html>
<head>
<script>
<tag1> 5 </tag1>
</script>
</head>
</html>";
int startIndex = htmlString.IndexOf("<script>");
int length = htmlString.IndexOf("</script>") - startIndex;
string scriptTag = htmlString.Substring(startIndex, length) + "</script>";
string expectedScripTag = scriptTag.Replace("<script>", "<script><br>" + text);
htmlString = htmlString.Replace(scriptTag, expectedScripTag);
答案 5 :(得分:1)
这可以使用 HTML Agility Pack (开源项目http://htmlagilitypack.codeplex.com)以另一种(更安全)的方式完成。它可以帮助您解析和编辑html,而无需担心格式错误的标记(<br/>, <br />, < br / >
等)。它包括便于插入元素的操作,如AppendChild
。
如果您正在处理HTML,这是可行的方法。