无法使用替换从HTML中删除不需要的字符

时间:2013-01-19 05:27:40

标签: html css vb.net replace stringbuilder

打开当前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;”通过客户名称字段...我知道这是因为更换;它在那里增加了一个。但是,如果我把它从追加线中取出来,我的网格就会出现问题...这是一个屏幕截图......

ERROR IM HAVING

以下是我抓取的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>&nbsp;</h1>
        <h1>&nbsp;</h1>
        <h1>&nbsp;</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>&nbsp;</h1>
        <h1>&nbsp;</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>

谢谢!

2 个答案:

答案 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>开头。这是它的来源,但你应该修复上一个问题,同时适当地关闭表的标签。