打开当前HTML文件并替换使用StringBuilder所需的内容时,我遇到了HTML问题...以下是我用来执行此操作的代码...
'Lets replace the grid information!'
Dim sb As New StringBuilder()
sb.AppendLine(" <table>")
sb.AppendLine("<tr>")
' sb.AppendLine("<th>")
For Each column As DataGridViewColumn In DataGridView1.Columns
sb.AppendLine(" <th>" + column.HeaderText + "</th>")
Next
' sb.AppendLine("</th>")
sb.AppendLine(" </tr>")
sb.AppendLine("</table")
HTML.Replace("%TABLE%", sb.ToString)
到目前为止一切正常,只有我正在解决的问题是摆脱“&lt;”通过客户名称字段...我知道这是因为更换;它在那里增加了一个。但是,如果我把它从追加线中取出来,我的网格就会出现问题...这是一个屏幕截图......
以下是我抓取的HTML文件的来源,然后替换我需要的内容......
<!doctype html>
<html>
<head>
<title>Invoice %Invoice%</title>
<link rel="stylesheet" href=%STYLE%>
<style type="text/css">
@import url("style.css");
</style>
</head>
<body>
<header>
<h1>Invoice %Invoice%</h1>
<address>
<p>%Business%</p>
</address>
<img src="file:///%Image%" alt="" align="right">
</header>
<article>
<h1> </h1>
<h1> </h1>
<h1> </h1>
<h1>Recipient</h1>
<address>
<p>%Company%</p>
<p>%Contact%</p>
<p>%Address%</p>
</address>
<table class="meta">
<tr>
<th><span>Invoice #</span></th>
<td><span>%Invoice%</span></td>
</tr>
<tr>
<th><span>Date</span></th>
<td><span>%Date%</span></td>
</tr>
<tr>
<th><span>Amount Paid</span></th>
<td><span id="prefix">$</span><span>0.00</span></td>
</tr>
<tr>
<th><span>Amount Due</span></th>
<td><span id="prefix">$</span><span>600.00</span></td>
</tr>
</table>
<%TABLE%> THIS IS WHERE I SEND THE TABLE TO!
</article>
<aside>
<h1> </h1>
<h1> </h1>
<h1><span>Additional Notes</span></h1>
<div contenteditable>
<p align ='center'>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
</div>
</aside>
</body>
</html>
谢谢!
答案 0 :(得分:3)
假设HTML是一个字符串,replace函数返回一个字符串结果,所以你需要:
HTML = HTML.Replace("%TABLE%", sb.ToString)
根据 pickypg你可能真正需要的答案:
HTML = HTML.Replace("<%TABLE%>", sb.ToString)
答案 1 :(得分:1)
原始HTML中的字符串字面上为<%TABLE%>
,但您只是替换%TABLE%
。
StringBuilder
字符串的结尾位于</table
而没有>
,但它以<table>
开头。这是它的来源,但你应该修复上一个问题,同时适当地关闭表的标签。