使用HtmlAgilityPack赋值InnerHtml时空格换行变为=""如何解决
问题原因
HtmlAgilityPack的InnerHtml属性仅用于接收合法HTML格式内容,你传入普通JS文本时,工具会自动尝试将内容解析为DOM结构:文本中被空格分隔的片段会被误识别为HTML标签的无值属性,进而被自动补全为=""格式,就出现了你看到的异常转换结果。
修复方案
- 如果你仅需要往节点中存入纯文本(不需要解析HTML标签),直接改用
InnerText属性赋值即可,该属性不会对输入内容做HTML解析,会原样保留所有空格、换行、特殊符号。 - 如果你确实需要使用
InnerHtml属性(比如要同时插入其他HTML标签),请先将JS代码包裹在<script>标签内再赋值:HtmlAgilityPack默认会将<script>、<style>标签内部的内容识别为纯文本,不会做属性解析处理。
示例代码
// 方案1:纯文本存储场景 string jsContent = File.ReadAllText("你的目标文件路径"); node.InnerText = jsContent; // 方案2:需要使用InnerHtml的场景 node.InnerHtml = $"<script>{jsContent}</script>";
内容的提问来源于stack exchange,提问作者Xel
相关产品推荐
相关产品推荐

