У меня есть частичный успех в моей попытке записать HTML в файл DOCX с помощью HTMLAgilityPack и библиотеки DOCX. Однако текст, который я вставляю в файл .docx, содержит закодированный html, например:
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);
}
}
}
. . .
Несомненно, самая уместная строка:
sourceText.Add(sText.InnerText);
Должно быть что-то другое, кроме InnerText?
Можно ли сделать что-то вроде:
sourceText.Add(sText.InnerText.Decode());
?
Intellisense не работает с этим, даже если проект компилируется и запускается; таким образом, попытки посмотреть, какие еще есть варианты, помимо InnerText для HTMLNode, бесполезны; Я знаю, что есть OuterText, InnerHTML и OuterHMTL, хотя ...