C# 如何使用HtmlAlityPack写出解码的HTML?
我尝试使用HTMLAgilityPack和DOCX库将HTML写入DOCX文件,但取得了部分成功。但是,我插入到.docx文件中的文本包含编码的html,例如:C# 如何使用HtmlAlityPack写出解码的HTML?,c#,html,html-agility-pack,decode,innertext,C#,Html,Html Agility Pack,Decode,Innertext,我尝试使用HTMLAgilityPack和DOCX库将HTML写入DOCX文件,但取得了部分成功。但是,我插入到.docx文件中的文本包含编码的html,例如: La ciudad de Los Ángeles (California) ha sincronizado su red completa de semáforos —casi 4.500—, que cubre un
La ciudad de Los Ángeles (California) ha sincronizado su red completa de semáforos —casi 4.500—, que cubre una zona de 1.215 kilómetros cuadrados (469 millas cuadradas). Según el diario
我希望它更像这样:
La ciudad de Los Angeles (California) ha sincronizado su red completa de semaforos - casi 4.500 -, que cubre una zona de 1.215 kilometros cuadrados (469 millas
cuadradas). Segun el diario
为了显示一些上下文,我正在使用以下代码:
private void ParseHTMLAndConvertBackToDOCX()
{
List<string> sourceText = new List<string>();
List<string> targetText = new List<string>();
HtmlAgilityPack.HtmlDocument htmlDocSource = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlDocument htmlDocTarget = new HtmlAgilityPack.HtmlDocument();
// There are various options, set as needed
htmlDocSource.OptionFixNestedTags = true;
htmlDocTarget.OptionFixNestedTags = true;
htmlDocSource.Load(sourceHTMLFilename);
htmlDocTarget.Load(targetHTMLFilename);
// Popul8 generic list of string with source text lines
if (htmlDocSource.DocumentNode != null)
{
IEnumerable<HtmlAgilityPack.HtmlNode> pNodes = htmlDocSource.DocumentNode.SelectNodes("//text()");
foreach (HtmlNode sText in pNodes)
{
if (!string.IsNullOrWhiteSpace(sText.InnerText))
{
sourceText.Add(sText.InnerText);
}
}
}
是否应该是InnerText以外的内容
是否有可能进行如下操作:
sourceText.Add(sText.InnerText.Decode());
?
Intellisense不处理此问题,即使项目编译并运行;因此,试图了解除了HTMLNode的InnerText之外还有哪些其他选项是徒劳的;我知道有OuterText、InnerHTML和OuterHTML,不过…试试:
sourceText.Add(HttpUtility.HtmlDecode(myEncodedString));
您可以使用HTMLAgilityPack中的
HtmlEntity.deentize(sText.InnerText)
。谢谢;我只需要添加一个对System.webs的引用,我更喜欢这个答案,因为除了HtmlAgilityPack之外,不需要其他代码。
sourceText.Add(HttpUtility.HtmlDecode(myEncodedString));