我们正在使用 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' 变量有一些疯狂的东西导致了问题。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消