我們正在使用 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 關注
- 122 瀏覽
添加回答
舉報
0/150
提交
取消