【发布时间】:2016-06-15 19:37:39
【问题描述】:
我有一些通过 textarea 获得的输入,然后我将该输入转换为 html 文档,然后再将其解析为 PDF 文档。
当我的用户输入小于号 (
在这个字符数据块中,我可以尽可能多地使用双破折号(以及
如果我只是添加它会更好一点
htmlDocument.OptionOutputOptimizeAttributeValues = true;
这给了我:
在这个字符数据块中,我可以尽可能多地使用双破折号(以及
我已经尝试了 htmldocument 上的所有选项,但没有一个可以让我指定解析器不应该是严格的。另一方面,我也许可以忍受它去掉
void Main()
{
var input = @"Within this Character Data block I can use double dashes as much as I want (along with <, &, ', and ') *and * % MyParamEntity; will be expanded to the text 'Has been expanded'...however, I can't use the CEND sequence(if I need to use it I must escape one of the brackets or the greater-than sign).";
var htmlDoc = WrapContentInHtml(input);
htmlDoc.DocumentNode.OuterHtml.ToString().Dump();
}
private HtmlDocument WrapContentInHtml(string content)
{
var htmlBuilder = new StringBuilder();
htmlBuilder.AppendLine("<!DOCTYPE html>");
htmlBuilder.AppendLine("<html>");
htmlBuilder.AppendLine("<head>");
htmlBuilder.AppendLine("<title></title>");
htmlBuilder.AppendLine("</head>");
htmlBuilder.AppendLine("<body><div id='sagsfremstillingContainer'>");
htmlBuilder.AppendLine(content);
htmlBuilder.AppendLine("</div></body></html>");
var htmlDocument = new HtmlDocument();
htmlDocument.OptionOutputOptimizeAttributeValues = true;
var htmlDoc = htmlBuilder.ToString();
htmlDocument.LoadHtml(htmlDoc);
return htmlDocument;
}
有没有人知道我该如何解决这个问题。
我能找到的最接近的问题是: Losing the 'less than' sign in HtmlAgilityPack loadhtml
他实际上抱怨
编辑: 我正在使用 HtmlAgilityPack 1.4.9
【问题讨论】:
-
HTML-转义您的内容。如果它包含标记字符,它肯定会中断。
-
我猜这不仅会破坏 HtmlAgilityPack。尝试在浏览器中查看它
标签: c# html-agility-pack