HTML Agility Pack操纵评论

时间:2012-09-10 17:08:27

标签: knockout.js html-agility-pack

我正在使用HTML Agility Pack打开主HTML文件,然后使用基本的StreamReader打开帮助文件,读取内容,并将它们放在主文件中的正确div中。

它有效,但由于某种原因,一些knockoutjs注释绑定变得搞砸了。

这是html

<select data-bind="css: { 'required': isrequired }" class="answer-single">
    <option value="">Choose</option>
    <!-- ko foreach: formquestionoptions -->
        <option data-bind="value:text, text:text"></option>
    <!-- /ko -->                              
</select>

(我已在Visual Studio调试器中验证过。)

当它被HTML Agility Pack插入时,它就是这样,导致Knockout错误

<select data-bind="css: { 'required': isrequired }" class="answer-single">
    <option value="">Choose
    <!-- ko foreach: formquestionoptions -->
        <option data-bind="value:text, text:text">
    <!-- /ko -->                              
</select>

我应该如何告诉HTML Agility包...不这样做?这是当前的代码

item.Helpers.ForEach(packet =>
{
    string contents = FileWriter.getFileContents(mapPath(packet.FileName));
    doc.GetElementbyId(packet.DomId).InnerHtml = Environment.NewLine + contents + Environment.NewLine;
});

1 个答案:

答案 0 :(得分:1)

默认情况下,HAP专门处理选项标签...所以要关闭此行为,这里是您需要的代码

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");

原始答案here