从字符串中提取特定div

时间:2011-08-18 07:20:43

标签: c#

假设一个巨大的文本数据存储在字符串变量中,如

<form method="post" action="../Dialog.aspx" id="ctl00">
    <div class="aspNetHidden">
        <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUBMGRkcTeMEXjXlquwdmAmnkFVfUymwaaSdYr/CV1hV+mxr6A=" />
</div>


<div id="frm">
    <table class="form" border="0"  cellpadding="0">
        <tr>
            <td class="labeltag">Name:</td>
            <td class="inputtd">
                <input name="ctl01$txtName" type="text" maxlength="100" id="ctl01_txtName" class="inputfield" />
            </td>
        </tr>
        <tr>
            <td class="labeltag">Subject:</td>
            <td class="inputtd">
                 <input name="ctl01$txtSubjectject" type="text" maxlength="100" id="ctl01_txtSubjectject" class="inputfield" />
            </td>
        </tr>
        <tr>
            <td class="labeltag">Email:</td>
            <td class="inputtd">
                <input name="ctl01$txtEmail" type="text" maxlength="100" id="ctl01_txtEmail" class="inputfield" />
            </td>
        </tr>
        <tr>
            <td class="textfield" colspan="2">
                Message:
                <div class="messagefield">
                    <textarea name="ctl01$txtmessage" rows="7" cols="33" id="ctl01_txtmessage" class="message">
                    </textarea>
                </div>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" name="ctl01$btnSubmit" value="Submit" id="ctl01_btnSubmit" class="button" />
                <input type="submit" name="ctl01$btnCancel" value="Cancel" id="ctl01_btnCancel" class="button" />
        </td>
        </tr>
        <tr>
            <td colspan="2" style="height:10px"></td>
        </tr>
        <tr>
            <td colspan="2">
                <div class="bottomline" id="loader">

                </div>
            </td>
        </tr>
    </table>
</div>
<div class="aspNetHidden">
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBwKni+1oAuj1kf0MAoWeuckCAqCHyBsC34bOwQQC1cvcnQsC67K1+giML7QhoV19G+plAUvDQ7ade0566ipNfJ+BXR02JW5IIQ==" />
</div>

从上面的数据我只需要提取一个名为“frm”的特殊div。

所以整个div及其内容将被提取出来。我知道这可以用正则表达式完成,但我不知道哪种模式在我的情况下会起作用。

我使用代码提取特定的div,如

 Regex search_string = new Regex("<div.*?id=\"frm\".*?>.*</div>");
        Match match = search_string.Match(outputToReturn);
        string section = match.Groups[0].Value;

但是部分什么都没有....匹配未找到。那怎么做 所以请帮忙。感谢

1 个答案:

答案 0 :(得分:0)

看起来您的字符串包含html文档。在这种情况下,你真的应该使用HTML解析器(有很多取决于语言)。 我所知道的是HtmlAgilityPack。

相关问题