为了账号安全,请及时绑定邮箱和手机立即绑定

HtmlAgilityPack - 附加两个节点不起作用

HtmlAgilityPack - 附加两个节点不起作用

C#
沧海一幻觉 2022-06-19 16:30:09
我们正在使用 HtmlAgilityPack ...尝试将两个节点添加到文档中样式节点脚本节点我们使用以下内容:HtmlNode styleNode = HtmlNode.CreateNode("<style>"+ style + "</style>");HtmlNode jsNode= HtmlNode.CreateNode("<script>"+ js + "</script>");page_body.AppendChild(styleNode);page_body.AppendChild(jsNode);我们得到的结果很奇怪,如果我们添加两个节点,那么样式将被附加到最终保存的文档中,而脚本不是。但是当我们标出样式节点时:// HtmlNode styleNode = HtmlNode.CreateNode("<style>"+ style + "</style>");HtmlNode jsNode= HtmlNode.CreateNode("<script>"+ js + "</script>");// page_body.AppendChild(styleNode);page_body.AppendChild(jsNode);然后脚本节点被附加并评估就好了......我们做错了什么?为什么这两个节点不能相处?...完整代码var pageDoc = new HtmlDocument();var title = page.GetAttributeValue("title", ""); //String.IsNullOrEmpty(title)var page_head = page.SelectSingleNode("//page-head");var page_body = page.SelectSingleNode("//page-body");var page_foot = page.SelectSingleNode("//page-footer");if (page_head == null) page_head = default_head.Clone();if (page_foot == null) page_foot = default_foot.Clone();// fetch and add dataHtmlNode script_node = HtmlNode.CreateNode("<script>" + js_handler + "</script>");HtmlNode style_node = HtmlNode.CreateNode("<style>" + general_style + style.InnerHtml + "</style>");page_body.AppendChild(script_node);page_body.AppendChild(style_node);HtmlNodeCollection childNodes = page_body.ChildNodes;foreach (var node in childNodes){    if (node.NodeType == HtmlNodeType.Element)    {        Console.WriteLine(node.Name);    }}string html_file = EXPORT_HTML_PATH + token + "_" + page_num + ".html";string pdf_file  = EXPORT_PDF_PATH  + token + "_" + page_num + ".pdf";FileStream sw = new FileStream(html_file, FileMode.Create); // specific page countpageDoc.LoadHtml(page.OuterHtml);pageDoc.Save(sw);sw.Close();
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您的方法似乎还可以,您需要共享完整的方法代码才能找到错误。这是一个小提琴,你可以看到它没问题。可能是您的 'style' 或 'script' 变量有一些疯狂的东西导致了问题。



查看完整回答
反对 回复 2022-06-19
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信